On Monday, May 6, 2002, at 05:45 , Marc M Dawson wrote:

> I am supposed to parse a text file such as this-
> 781457  Hartanto Victor Setiawan <[EMAIL PROTECTED]>
> 777557  Hatfield Benjamin <[EMAIL PROTECTED]>
> 779777  Henry James <[EMAIL PROTECTED]>
> 777947  Hergert Michael William <[EMAIL PROTECTED]>
> 778097  Iverson Jennifer Marsee <[EMAIL PROTECTED]>
>
> As you can see... some people have middle names and some dont... how 
> would I
> go about parsing this text file and putting each into it own seperate
> entity, except if there is a middle name, in which case I want it to be
> joint first and middle.  I realize that I am supposed to use some kind of
> split function, however I am unsure how to use it fully, and the prfessor
> didnt go over it too much.

why a 'split'????

If you only want the 'full user name' why not simple:

        while ( <INFO1> ) {
        /^\s*\d+\s*([\w\s]+)\</;
        
        my $person = $1;
        print "found :$person\n";
        push (@info, $person);
        
}

or the more complex if you want to save them all

        while ( <INFO1> ) {
                /^\s*(\d+)\s*([\w\s]+)\<(\S+)\>/; # more round parens more things
        
                my $num = $1;
                my $person = $2;
                my $email = $3;
                print "found :$person\n";
        
                $info{$num} = [$person, $email];
        
        }
hence to unpack that %info with

        while ( my ($key, $val) = each %info ) {

                print "At $key we have\n";
                print "\t$_\n" for (@$val) ;
        }

the trick is to find the pattern in the data.....

It is all a matter of 'where is waldo'?????

ciao
drieux

---


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

Reply via email to