my @array = ({doc1=>2345}, {doc2=>1234}, {doc3=>5678}, {doc4=>4567}); my %hash = map { %{$_} } @array; my @sorted = sort { $hash{$a} <=> $hash{$b} } keys %hash; print "@sorted\n";