--- Peter Jay Salzman <[EMAIL PROTECTED]> wrote: > the string that i'm matching though is $_, not > $temperature. $_ holds a > filename, like "100.energy", and i'd like to extract > the "100" from the > filename and put it in $temperature. > > doesn't > > $temperature =~ s/(\d+).*/$1/; > > assume that $temperature is the object holding > "100.energy"?
Yes it does. > > note that i'm being greedy here -- this DOES work: > > /(\d+).*/; # match "100" in $_ > $temperature = $+; # put it in $temperature > > i just want to do it in a single line. :) also, > i'd like to do it > without destroying the contents of $_ if possible. Then your approach is the only way I know. But, you may want to take care of 'no match' cases. $+ is the last match. If your match fails, then a prior match will be picked up, *I think*. (Not tested.) One other point. the '.' is a metacharacter that matches anything except a newline character. So .* matches the rest of the line. It you want to match a '.' then escape it: # ----- use strict; $_ = '100.energy'; /^(\d*)\./; print "temp: $1\n"; # ----- Good luck. Jim __________________________________________________ Do You Yahoo!? Send FREE video emails in Yahoo! Mail! http://promo.yahoo.com/videomail/ _______________________________________________ vox-tech mailing list [EMAIL PROTECTED] http://lists.lugod.org/mailman/listinfo/vox-tech