>>965
探すよりも考えましょう。

my %data = ('A' => 5, 'B' => 5, 'C' => 3); # (名前 => ポイント)のデータ
my $rank = 1; # 順位
my $last_pt = 0; # 直前のポイント

# %dataのvalue(書き込み数)で降順ソートしてforeachで回す
foreach my $name (sort { $data{$b} <=> $data{$a}} keys %data) {
my $pt = $data{$name}; # 今回のポイントへのショートカット
$rank++ if ($last_pt > $pt); # 順位の更新
print $rank, "\t", $name, "\t", $pt, "\n"; # ランキング表示
$last_pt = $pt; # 直前のポイント更新
}