l i n u x - u s e r s - g r o u p - o f - d a v i s
L U G O D
 
Next Meeting:
September 2: Social gathering
Next Installfest:
TBD
Latest News:
Aug. 18: Discounts to "Velocity" in NY; come to tonight's "Photography" talk
Page last updated:
2002 Jan 12 16:23

The following is an archive of a post made to our 'vox-tech mailing list' by one of its subscribers.

Report this post as spam:

(Enter your email address)
Re: [vox-tech] dumb perl question
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [vox-tech] dumb perl question



You could do:

#!/usr/bin/perl -w

$_ = "200.energy";

(my $temp = $_) =~ s/(\d+).*/$1/;

print $temp,"\n";

I'm sure everyone will come up with a different solution. TIMTOWTDI

----- Original Message -----
From: "Peter Jay Salzman" <p@dirac.org>
To: <vox-tech@lists.lugod.org>
Sent: Saturday, January 12, 2002 6:00 PM
Subject: Re: [vox-tech] dumb perl question


> 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
> _______________________________________________
> vox-tech mailing list
> vox-tech@lists.lugod.org
> http://lists.lugod.org/mailman/listinfo/vox-tech


_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com

_______________________________________________
vox-tech mailing list
vox-tech@lists.lugod.org
http://lists.lugod.org/mailman/listinfo/vox-tech



LinkedIn
LUGOD Group on LinkedIn
Sign up for LUGOD event announcements
Your email address:
facebook
LUGOD Group on Facebook
'Like' LUGOD on Facebook:

Hosting provided by:
Sunset Systems
Sunset Systems offers preconfigured Linux systems, remote system administration and custom software development.

LUGOD: Linux Users' Group of Davis
PO Box 2082, Davis, CA 95617
Contact Us

LUGOD is a 501(c)7 non-profit organization
based in Davis, California
and serving the Sacramento area.
"Linux" is a trademark of Linus Torvalds.

Sponsored in part by:
Sunset Systems
Who graciously hosts our website & mailing lists!