sub SortArrayOfHashes { my @array = @{(shift)} ; my %valuesum; foreach my $i (0 .. $#array) { my $sum = 0; $sum += $_ foreach (values %{$array[$i]}); $valuesum{$i} = $sum; } my @sortedarray; foreach ( sort {$valuesum{$a} <=> $valuesum{$b} } keys %valuesum ) { push (@sortedarray, $array[$_]); } return @sortedarray; }