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" }