From: Matthew Desmarais Date: 2006-04-06T08:50:56+09:00 Subject: Re: Copying $1.. A loop with two regular expressions Matthew Desmarais wrote: > Hi there, > > Oky wrote: >> Hi, sorry if this is a stupid question.. i've only been programming >> ruby for about six hours. >> >> I'm trying to white a loop to parse through a webpage and get all the >> links to other pages. This loop depends on a regular expression to >> find all the > regular expression which looks to see if the link is relative or >> static. The problem is the inner regular expression changes the $1 >> variable so the loop just fails on the first iteration. I've tried >> making a copy of the $1 variable but the result just ends up >> containing nil. >> >> Any help you could offer would be gratefully appreciated >> >> Hears my code so far: >> >> loop do >> url = $1 >> puts $1 #A url >> puts $url #Always nil ? >> > Here's _a_ problem for you to start with. You've assigned the value > of 1 to the local variable url. When you puts $url, you are examining > and printing the global variable $url. Since you haven't assigned > anything to $url yet, it is nil. > > In Ruby an unadorned name like "url" is either a local variable or > method call. Putting a "$" on the front of something tells Ruby that > you want to refer to a global. > > So try changing the "$url" to "url" and see what happens. > > I hope it's something good. > > Matthew > Huh. Try "You've assigned the value of $1 to the local variable url." That'll make more sense (maybe). Sheesh. Sorry. ;-)