Curious, but I've always thought that regex was much quicker then split for situations such as this... I'd always figured that split was basically a (and the regex for this is probably wrong, but you can get the jist of it) /[^($delimiter | end of string)/ with a dumping of the match minus the delimiter...
I'm guessing what was meant is that regex is more work then using a split, but it doesn't particularly seem like a huge amount of extra work using regex... any comments/thoughts? ~Brian >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]