【发布时间】:2022-11-30 19:43:49
【问题描述】:
我正在尝试用 Perl 编写排序函数。我需要“name_iwant_last”将是排序哈希中的最后一个。
我的代码:
%libs = (
"00000000000","00000000000",
"aaaaaaaaaaa","aaaaaaaaaaa",
"AAAAAAAAAA","AAAAAAAAAA",
"name_iwant_last","name_iwant_last",
"zzzzzzzzzzzzz","zzzzzzzzzzzzz",
"ZZZZZZZZZZZ","ZZZZZZZZZZZ",
"9999999999","9999999999"
);
sub lib_sort {
#print "cosa ordino ";
#print $libs{$a};
#print $libs{$b};
#print "\n";
return 1 if (index($libs{$a} , "name_iwant_last") != -1);
return -1 if $libs{$a} < $libs{$b};
return 0 if $libs{$a} == $libs{$b};
return 1 if $libs{$a} > $libs{$b};
}
foreach my $lib (sort lib_sort values %libs) {
print $lib;
print "\n";
}
但是当我运行这段代码时……打印顺序是随机的……
预期的: 啊啊啊 啊啊啊…… 名字_iwant_last
结果: 随机的!!!
【问题讨论】: