From: Matthew Desmarais Date: 2006-04-06T08:45:14+09:00 Subject: Re: Copying $1.. A loop with two regular expressions 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 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