on Tue, 20 Aug 2002 16:22:31 GMT, Jessica wrote:
> I am attempting to extract a two words or fields from every line of a
> tab delimited file. Sometimes the words that I need are in fields 1 &
> 2 and other time they are in 2 & 3. The lines look something like
> this:
>
> TypeOfApp ApplicationName RunStatus
> ---------------------------------------------------------------------
>
> application run_me_now complete
> application2 ran_me_yesterday complete/errors
> need_to_run_tomorrow failed
>
> I am in need of just extracting the ApplicationName and RunStatus
> from the lines and placing them in variables so that I can do things
> with them.
>
> I think I'm smart enought to know how to get the file opened and get
> the lines into a while loop like so:
>
> open (FILE, ./datafile);
Unfortunately, this is not the case:
You forgot to turn on warnings and strictures.
You didn't quote your filename.
You didn't check the return value of the open-call.
Try this:
#! perl -w
use strict;
open FILE, './datafile' or die "Could not open file: $!";
while (<FILE>) {
chomp;
# skip blank lines and column headers
next if /^$/;
next if /^---------/;
next if /^TypeOfApp/;
# keep last two fields
my ($when, $result) = (split ' ')[-2,-1];
print "$when: $result\n";
}
--
felix
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]