test perl____ -- load -- -- reduce -- -- sum -- file version_ min mean max min mean max min mean max test.1 perl5.5.4 0.77 0.79 0.98 0.15 0.156 0.16 0.92 0.946 1.14 test.1 perl5.6.2 0.79 0.796 0.81 0.14 0.144 0.15 0.93 0.94 0.95 test.1 perl5.8.7 0.78 0.7825 0.83 0.12 0.123 0.13 0.9 0.9055 0.96 test.1 perl5.9.3 0.78 0.784 0.79 0.14 0.1405 0.15 0.92 0.9245 0.93 test.2 perl5.5.4 15.84 15.9475 16.21 6.83 6.877 7.03 22.67 22.8245 23.07 test.2 perl5.6.2 15.53 15.652 16.47 6.72 6.7735 7.02 22.27 22.4255 23.49 test.2 perl5.8.7 14.92 15.147 16.20 5.73 5.8255 6.28 20.65 20.9725 22.12 test.2 perl5.9.3 15.51 15.553 15.70 6.78 6.8505 7.32 22.29 22.4035 22.84 The above table was created with: #! /usr/local/bin/perl -w use strict; my $version; my $file; my $loaded; my %perl; while( <> ) { /^(perl\S+) (\S+)/ and ($version, $file) = ($1, $2); /^loaded =\s+(\S+)/ and $loaded = $1; /^reduced =\s+(\S+)/ and push @{$perl{$file}{$version}}, [$loaded, $1]; } print join( "\t", qw/test perl____ -- load -- -- reduce -- -- sum --/), "\n"; print join( "\t", qw/file version_ min mean max min mean max min mean max/), "\n"; for my $f( sort keys %perl ) { for my $v( sort keys %{$perl{$f}} ) { my @result = splice( @{[sort {$a->[0]+$a->[1] <=> $b->[0]+$b->[1]} @{$perl{$f}{$v}} ]}, 1, -1 ); my (%min, %max, %sum); for my $r (@result) { my $sum = $r->[0] + $r->[1]; $sum{load} += $r->[0]; $sum{reduce} += $r->[1]; $sum{sum} += $sum; $min{load} = $r->[0] if not exists $min{load} or $min{load} > $r->[0]; $max{load} = $r->[0] if not exists $max{load} or $max{load} < $r->[0]; $min{reduce} = $r->[1] if not exists $min{reduce} or $min{reduce} > $r->[1]; $max{reduce} = $r->[1] if not exists $max{reduce} or $max{reduce} < $r->[1]; $min{sum} = $sum if not exists $min{sum} or $min{sum} > $sum; $max{sum} = $sum if not exists $max{sum} or $max{sum} < $sum; } my $nr = @result; print join( "\t", $f, $v, map { ($min{$_}, $sum{$_}/$nr, $max{$_}) } qw/load reduce sum/ ), "\n"; } print "\n"; } __END__ The above file processed the output obtained by running script run.out ./run.sh ^D ./stats run.out where run.sh looks like #! /bin/sh for p in perl5.5.4 perl5.6.2 perl5.8.7 perl5.9.3 do $p Makefile.PL && make for file in test.1 test.2 do echo $p $file cat $file >/dev/null cat $file >/dev/null nr=0 while [ $nr -lt 22 ] do nr=$(($nr+1)) PERL5LIB=blib/lib $p eg/assemble -bc $file done done done