use strict;
use warnings;
my %hash=(‘a’=>2,’b’=>3,’c’=>1);
#perl中按hash值排序: 按ASCII码排序,代码如下:
foreach my \$key ( sort { \$hash{\$a} cmp \$hash{\$b} } keys %hash ) {
my \$value = \$hash{\$key};
#do something with (\$key, \$value)
}
#如果是按数字小到大排列,则代码如下:
foreach my \$key ( sort { \$hash{\$a} <=> \$hash{\$b} } keys %hash ) {
my \$value = \$hash{\$key};
#do something with (\$key, $value)
}
#如果是按数字大到小排列,则代码如下:
foreach my \$key ( sort { \$hash{\$b} <=> \$hash{\$a} } keys %hash ) {
my \$value = \$hash{\$key};
#do something with (\$key, \$value)
}
按hash KEY排列
foreach my \$item (sort {\$a<=>\$b} keys %hash){
print “\$item == > \$hash{\$item}”,”/n”;
}
尊重他人劳动成果,转载请注明出处:Bluesky's blog » perl hash按值排序