我想使用Data::Dumper
打印多级哈希。我想根据内部哈希值对输出进行排序。我尝试了以下几个示例来重新定义Data::Dumper::Sortkeys
,以根据键index
的值进行排序,但似乎不起作用。下面是我尝试的内容:
use strict;
use Getopt::Long;
use Data::Dumper;
use Storable qw(dclone);
use File::Basename;
use Perl::Tidy;
my $hash = {
key1 => {
index => 100,
},
key3 => {
index => 110,
},
key2 => {
index => 99,
},
key5 => {
index => 81,
},
key4 => {
index => 107,
},
};
#$Data::Dumper::Terse = 1;
$Data::Dumper::Sortkeys =
sub {
[sort {$b->{'index'} <=> $a->{'index'}} keys %{$_[0]}];
};
print Dumper $hash;
字符串
我期望:
$VAR1 = {
key5 => {
index => 81,
},
key2 => {
index => 99,
},
key1 => {
index => 100,
},
key4 => {
index => 107,
},
key3 => {
index => 110,
},
};
型
这就是我得到的:
$VAR1 = {
'key5' => {
'index' => 81
},
'key4' => {
'index' => 107
},
'key3' => {
'index' => 110
},
'key2' => {
'index' => 99
},
'key1' => {
'index' => 100
}
};
型
我做错了什么?
1条答案
按热度按时间r8uurelv1#
变量
$a
和$b
保存键,因此必须使用sortkeys子元素中的hashref来访问实际的元素。字符串