use strict; use warnings; my @matrix = ( {A => 22, C => 51, G => 7, T => 0}, {A => 9, C => 30, G => 0, T => 2}, ); for my $h (@matrix) { my @temp; print "[ "; for my $k (sort {$h->{$b} <=> $h->{$a}} (keys(%{$h}))) { print "$h->{$k} "; push @temp, $k } print "@temp ]\n" } #### use strict; use warnings; my @matrix = ( {A => 4, C => 0, G => 13, T => 0}, {A => 5, C => 0, G => 12, T => 0}, {A => 15, C => 0, G => 2, T => 0}, {A => 0, C => 17, G => 0, T => 0}, ); for my $h (0..$#matrix) { my @temp; print "[ $h "; for my $k (sort {$matrix[$h]->{$b} <=> $matrix[$h]->{$a}} (keys(%{$matrix[$h]}))) { print "$matrix[$h]->{$k} "; push @temp, $k } print "@temp ]\n" }