--- Jason Creighton <androflux / softhome.net> wrote: > On Tue, 2 Sep 2003 23:05:05 +0900 > Thomas Adam <thomas_adam16 / yahoo.com> wrote: > > > --- Michael Campbell <michael_s_campbell / yahoo.com> wrote: > (I > think...) > > > #2 > > > > > > Is there a way to get matched data into variables without using > > > matchdata, or perl ugly-variables? > > > > > > Again, in perl I could do something like: > > > > > > $_ = "Dec 12"; > > > (mon, day) = /(\w+) (\d+)/; > > > > this = "Dec 12" > > that = $1 if this =~ /(\w+) (\d+)/ > > other = $2 if this =~ /(\w+) (\d+)/ > > MatchData has a #captures method as of 1.8,so you could also do > something like: > > this = "Dec 12" > that, other = /(\w+) (\d+)/.match(this).captures > p that, other That's right, Jason -- I couldn't for the life of me remember what it was :) Incidentally, small world, is it not :) > ....but this will run into problems when there's not a match, and > Regexp#match returns nil. So something like this might be better > > if m = /(\w+) (\d+)/.match(this) > that, other = m.captures > # Do stuff with "that" and "other" > else > # We didn't match, do something about it > end I think we can make the assumption in this case that there will be a match. > Also, if I was going to do that way you listed, I'd say it like: > > if this =~ /(\w+) (\d+) > that, other = $1, $2 > end Each to their own. -- Thomas Adam ===== Thomas Adam "The Linux Weekend Mechanic" -- www.linuxgazette.com ________________________________________________________________________ Want to chat instantly with your online friends? Get the FREE Yahoo! Messenger http://mail.messenger.yahoo.co.uk