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]