use strict; use warnings; use Data::Dumper; my @vals = (5, 5.71428571428571); for (1 .. 10) { my $hsh; for my $k (@vals) { $hsh->{$k} = 1; } my @sorted = sort {$hsh->{$b} <=> $hsh->{$a}} keys %$hsh; print "$_: " . Dumper (\@sorted); } exit 0;