On Tuesday, May 7, 2002, at 08:23 , Timothy Johnson wrote:

> Here's one way with a regex:
>
> open(INFILE,"myfile.txt") || die "Could not open myfile.txt!\n";
> while(<INFILE>){
>    $_ =~ /^(\d{6})\s+(\w+\s*\w*)\s+(\w+)\s+(<.+\@.+>)\s*$/ || die 
> "Improper
> format";
>    $index = $1;
>    $firstmaybemiddle = $2;
>    $last = $3;
>    $smtpaddr = $4;
> }

For those of you new to perl, On behalf of the morally responsible
wing of the perl community, I would like to apologize for some
of the writers here who, well meander a bit....

<rant hasCode='true' isNearTopic='mostly'>

CHILDREN!!!! { Yes, you formerly known as , and his side kick }

the game is 'where is waldo' - not

        WATCH ME CRUSH WALDO

I love 'perl line noise' over 'sed line noise' for regular
expression matching - but IF you are going to be demonstratively SILLY
about OVER working the regEX at least show some elan

while ( <INFO1> ) {
         /^(\d{6})\s+(\w+\s*\w*)\s+(\w+)\s+(<.+\@.+>)\s*$/ ;
        my $num = $1;
        my $tmp = $2;
        my $last = $3;
        my $email = $4;
        my ($first, $middle) = split(/ \s*/, $tmp);
        $middle ||= "NMN";              # NMN: No Middle Name
        print "found :$num:$first:$middle:$last:$email:\n";
}

IF you are planning on writing the 'validator' - then use Jonathan's
approach and WHINE about it - rather than die..... Although he should
have put together a second list of 'Scragged' lines of data - and hence
should have returned the refs to the arrays... but details...

<rant/>

<JustSilly val="Now Don't Make Me come down there and fix you!"/>

ciao
drieux

---


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

Reply via email to