Ok, first, thanks for the correction and input David...  I agree 100% with what you 
say.

Secondly, am I just crazy, or doesn't split USE regex?  Since this is the second 
mention the regex is overkill, and that split will work, I am a bit confused...  When 
you can say $var=split(/=|:/); it tells me this IS a regex...  hence the '//'s.  So 
how exactly is this any less overkill (powerful) than a regex?

shawn

----- Original Message ----- 
From: "Scot Robnett" <[EMAIL PROTECTED]>
To: "ChaoZ Inferno" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
Sent: Friday, May 17, 2002 9:52 AM
Subject: RE: regular expression


> Regular expressions are overkill for what you're trying to do. It seems like
> using 'split' should do exactly what you need.
> 
> #!/usr/bin/perl -W
> 
> use strict;
> open(IN,"</path/to/file") or die "Could not open file";
> my @list = <IN>;
> close(IN);
> 
> for(@list) {
>  chomp;
>  my($field,$value) = split(/=/,$_); # split each line on '='
>  print "Your $field is $value. \n";
> }
> 
> 
> Scot Robnett
> inSite Internet Solutions
> [EMAIL PROTECTED]
> [EMAIL PROTECTED]
> 
> 
> -----Original Message-----
> From: ChaoZ Inferno [mailto:[EMAIL PROTECTED]]
> Sent: Friday, May 17, 2002 11:38 AM
> To: [EMAIL PROTECTED]
> Subject: Re: regular expression
> 
> 
> Actually, the content of the file looks something like:-
> name=john
> id=12345
> password=12345
> colour=blue
> 
> I am trying to grab the value field of each line and assigned it to be a
> variable.
> 
> I tried the regular expressions, but seems like the syntax is wrong or
> something,
> 
> @file = <filehandle>; #small file anyway
> 
> $file[0] is equal to 'name=john'  but i just wanna extract john to be my
> scalar variable.
> 
> like print $name but returns john only and the same extraction method for
> the rest of the other 3 fields as well.
> 
> kindly advice!... million thanks!
> 
> 
> 
> 
> ----- Original Message -----
> From: "David Gray" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Cc: "'ChaoZ InferNo'" <[EMAIL PROTECTED]>; "'Shawn'" <[EMAIL PROTECTED]>
> Sent: Friday, May 17, 2002 10:16 PM
> Subject: RE: regular expression
> 
> 
> > > <code>
> > ...
> > > for(@text) {
> > >   /(d+)$/; # Match only the numbers at the end of the string
> >      ^^
> >       this should actually be (\d+)
> >
> > I would actually conditionally print also, like so:
> >
> >  print $1 if /(\d+)$/;
> >
> > And depending on the size of the file, instead of reading the whole
> > thing into memory with
> >
> >  my @text = (<FILE>);
> >
> > I would do:
> >
> >  while(<FILE>) {
> >    print $1 if /(\d+)$/;
> >  }
> >
> > >            # and store them in '$1' to be printed out on the
> > >            # next line followed by a new line character
> > ...
> > > > @text # contains values of a phone directory
> > > > $text[0] contains john=012345678
> > > >
> > > > $phone1 = ?
> > > >
> > > > let say i wanted to grab just the values'012345678'.
> > > > how should i go on truncating the values?
> >
> > Cheers,
> >
> >  -dave
> >
> >
> >
> 
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> ---
> Incoming mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.351 / Virus Database: 197 - Release Date: 4/19/2002
> 
> ---
> Outgoing mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.351 / Virus Database: 197 - Release Date: 4/19/2002
> 
> 
> -- 
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 


--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to