perl - 在 perl 中基于散列中的值进行排序的简单方法

通常根据键排序然后迭代哈希可以如下完成:

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/

相关文章:

php - echo $_SESSION 然后取消设置

css - 当类名只是一个整数时,如何编写 CSS 选择器?

php - 瑞士的语言环境(正确显示瑞士法郎)

vb.net - 计算visual basic中两个日期之间的工作日数

r - 安装 Rstem 包的问题

perl - 如何在 Perl 中创建一个新文件?

c# - 如何从列表框 C# 中删除选定的项目

php - 如何用PHP生成每月的天数?

sql - oracle如何获取最新的员工记录?

wix - 在 WIX 安装程序中检查 RAM