my %Uniq; while( my $Ip = NextIp() ){ $Uniq{$Ip}++ } my @TopDown = sort { $Fun{$b} <=> $Fun{$a} } keys %Uniq; my @TopTen = @TopDown[0..9]; # @TopTen = ( sort { $Fun{$b} <=> $Fun{$a} } keys %Uniq )[ 0 .. 9]; #### my @Top = sort { $b->[1] <=> $a->[1] } map { [ $_, $Uniq{$_} ] } keys %Uniq; undef %Uniq; @Top = @Top[0..9];