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];