[vox-tech] dumb perl question

Peter Jay Salzman vox-tech@lists.lugod.org
Sat, 12 Jan 2002 16:00:57 -0800


hi jim,

thanks for helping me out!  

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"?

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.

pete


begin Jim Angstadt <jimajima9@yahoo.com> 
> --- Peter Jay Salzman <p@dirac.org> wrote:
> <snip>
> > 	/(\d+).*/;
> > 	$temperature = $+;
> 
> $1 holds the \d+ matching, because it has parens. 
> Multiple sets of parens will match $1, $2, ... based
> on the left to right order of the parens.
> 
> If $temperature already had one or more digits \d+ and
> some other junk, replace digits and junk with digits:
> 
> $temperature =~ s/(\d+).*/$1/; 
> 
> Note, if $temperature has a newline character in the
> middle somewhere, then .* will not match it.
> 
> ---
> Jim
> 
> __________________________________________________
> Do You Yahoo!?
> Send FREE video emails in Yahoo! Mail!
> http://promo.yahoo.com/videomail/
> _______________________________________________
> vox-tech mailing list
> vox-tech@lists.lugod.org
> http://lists.lugod.org/mailman/listinfo/vox-tech

-- 
The mathematics [of physics] has become ever more abstract, rather than more
complicated.  The mind of God appears to be abstract but not complicated.
He also appears to like group theory.  --  Tony Zee's `Fearful Symmetry'

PGP Fingerprint: B9F1 6CF3 47C4 7CD8 D33E  70A9 A3B9 1945 67EA 951D