This one is light on memory, and does not need modules .
Basically, it uses the "Pass #" as a record delimiter.
use strict;
use warnings;
my $file = "data1.txt";
local $/ = "\nPass #";
open my $fh, '<', $file or die "Can't open $file: $!";
while ( <$fh>){
print join(",",
m/(\d+).*?
^Elapsed\ Time\s+:\s+([\d\.]+).*?
^CPU\ Time\s+:\s+([\d\.]+).*?
^Virtual\ memory\ size\s+:\s+([\d\.]+).*?
^Resident\ set\ size\s+:\s+([\d\.]+).*?
^Major\ page\ faults\s+:\s+([\d\.]+)
/msgcx)
, "\n";
}
close $fh;
“PHP is a minor evil perpetrated and created by incompetent amateurs, whereas Perl is a great and insidious evil perpetrated by skilled but perverted professionals.”
― Jon Ribbens