我有一个名称和等级(键)的哈希值和一个数字(值)格式为:
"\nName\nSecondName\nRank: 12345/150000" => 100
"\nThirdName\nFourthName\nRank: 24567/150000" => 71
"\nFifthName\nSixthName\nRank: 10101/150000" => 71
等等150,000次......
使用Perl,我想主要通过值编号对哈希进行排序,然后按第一个排名编号对其进行排序,如下所示:
"\nName\nSecondName\nRank: 12345/150000" => 100
"\nFifthName\nSixthName\nRank: 10101/150000" => 71
"\nThirdName\nFourthName\nRank: 24567/150000" => 71
答案 0 :(得分:2)
my @ordered_keys =
sort {
$hash{$b} <=> $hash{$a}
||
($a =~ m{: ([0-9]+)/})[0] <=> ($b =~ m{(: [0-9]+)/})[0]
}
keys %hash;
for my $key (@ordered_keys) {
my $val = $hash{$key};
...
}