1#! /usr/bin/perl -w 2 3use strict; 4 5use FileHandle; 6 7my $prefix = shift; 8 9# <type> <len> <num> <sz> <xtra> <speed> <mem> 10 11my %fields = (type => 0, len => 1, num => 2, sz => 3, 12 extra => 4, speed => 5, mem => 6, unusedmem => 7); 13 14my $store = {}; 15 16sub print_data 17{ 18 my $a = shift; 19 my $key = shift; 20 21 open (OUT, "> $prefix-$key.csv") || die ("open: $!\n"); 22 23 splice(@$a, 2, 3); 24 splice(@$a, 0, 1); 25 26 while (scalar(@$a) > 4) 27 { 28 OUT->print(join " ", splice(@$a, 0, 4)); 29 OUT->print("\n"); 30 } 31} 32 33while (<>) 34{ 35 my @vals = split; 36 37 if (scalar(@vals) != 8) { next; } 38 39 my $key = join "_", ($vals[$fields{num}], $vals[$fields{extra}], 40 $vals[$fields{sz}], $vals[$fields{type}]); 41 my $a = $store->{$key}; 42 43 if (!defined (@$a)) 44 { # First time... 45 $a = $store->{$key} = []; 46 47 push(@$a, @vals); 48 next; 49 } 50 51 # Same as previous... 52 push(@$a, @vals[$fields{len}, $fields{speed}, 53 $fields{mem}, $fields{unusedmem}]); 54} 55 56for (keys %$store) 57{ 58 my $a = $store->{$_}; 59 60 if (!scalar(@$a)) { next; } 61 62 print_data($a, $_); 63} 64 65