open (SUM2,">$ARGV[0].sum.sorted"); my @records; { local $/ = /\n\n/; open IN2, "$ARGV[0].sum" or die "Cannot open data file.\n$!"; while ( my $record = ) { my @kv_pairs = split /\n/, $record; push @records, [@kv_pairs]; } close IN2; } print STDERR 'Record count: ', scalar @records; my @sorted_recs = map { $_->[0] } sort { $a->[1] <=> $b->[1] } map { [ $_, (split /=\s+/,$_->[4])[1] ] } @records; foreach my $records ( @sorted_recs ) { foreach my $record ( @{$records} ) { print SUM2 $record; } print SUM2 "\n"; } close (IN2); close (SUM2);