通常根据键排序然后迭代哈希可以如下完成:
for $k (sort (keys %h)) {
print $k, $h{$k};
}
但是如何根据值进行排序,然后遍历散列呢?我可以考虑通过交换键值对来创建一个新的散列。但是有没有更聪明的方法来做到这一点?
非常感谢。
最佳答案
这按值而不是键对%age散列进行排序
@eldest = sort { $age{$b} <=> $age{$a} } keys %age;
这会根据值进行排序。 有关详细信息,请参阅 Perl 文档:
http://perldoc.perl.org/functions/sort.html
https://stackoverflow.com/questions/5972224/