比方说,我有构造散列数据结构的哈希值如下:排序的哈希值的Perl值哈希
%HoH => (
flintstones => {
family_members => "fred;wilma;pebbles;dino",
number_of_members => 4,
},
jetsons => {
family_members => "george;jane;elroy",
number_of_members => 3,
},
simpsons => {
family_members => "homer;marge;bart;lisa;maggie",
number_of_members => 5,
},
)
如何通过价值number_of_members
从最大的关键,在这种情况下,家庭进行排序,至少?然后我想打印出最高的两个。这里有一个大致的了解,但我知道这是错的:
foreach $value (
sort {
$HoH{$a}{$number_of_members} cmp $HoH{$b}{$number_of_members}
} keys %HoH)
my $count = 0;
while ($key, $value) = each %HoH) {
if (count <= 2){
print "${HoH}{$key}\t$key{$value}";
}
}
continue {
$count++;
};
我想要的代码打印(空格是制表符分隔):
simpsons homer;marge;bart;lisa;maggie
flintstones fred;wilma;pebbles;dino
'的perldoc -q sort' – toolic 2013-02-18 19:07:36
与<=>替换CMP。你做一个数字比较 – user1937198 2013-02-18 19:18:45