How Perl Saved my DayExample 2 |
The solution
#!/usr/local/bin/perl # the home of Perl
@files = <*.pr1>; # put a list of all files
# ending in .pr1 into the array @files
foreach $file (@files) { # for each element of the array @files
# (i.e., each file called $file)
$phenol = 0; # initialize variables
$php = 0;
@lines = ();
open(F, $file) or die; # open the file named $file, quit if unsuccessfull
while (<F>) { # read in line after line, and store it in $_[Note 3]
s/^\s+//; # remove leading (^) white space (\s) from $_
s/\s+$//; # remove trailing ($) white space (\s) from $_
push @lines, $_; # add the line ($_) to the array @lines
# which contains all lines of a file
if (/PHENOL/) { # if the line contains PHENOL
@columns = split /\s+/; # then split it at white spaces
$phenol = $columns[4]; # and store the peak area (5th column) in $phenol
} elsif (/PHP/) { # same for PHP
@columns = split /\s+/;
$php = $columns[4];
}
}
close(F); # close the file named $file
$lines[0] =~ /(\S+$)/; # get the last word of line 1
$sample = $1; # which is the sample name
$lines[6] =~ /\s*(\S+)\s+(\S+)/; # date and time are the
$date = $1; # first and second word on line 7
$time = $2;
print "$file $sample $date "; # print the result to standard output
print "$time $phenol $php\n";
}
|
|
10.12.1998 Michael Gfeller |