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; }
Now I haven't had a chance to test this out, so I might have the escapes wrong somewhere or something, but that's the gist. By using \s*\w* it should only capture the middle name if it exists. -----Original Message----- From: Marc M Dawson To: [EMAIL PROTECTED] Sent: 5/6/02 5:45 PM Subject: Ok- real dumb question 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. Thanks for any help! -- 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]