Perl 如何在散列中查找每个键的最小值和最大值
我想获得每个键的最小值和最大值:Perl 如何在散列中查找每个键的最小值和最大值,perl,hash,Perl,Hash,我想获得每个键的最小值和最大值: DATA: $VAR1 = { '0.0' => { '0.0', '1.2', '2.0', '0.4', }, '0.2' => { '2.3',
DATA:
$VAR1 = { '0.0' => {
'0.0',
'1.2',
'2.0',
'0.4',
},
'0.2' => {
'2.3',
'0.1',
'0.0',
}
};
我的代码片段:
use List::MoreUtils qw( minmax );
for my $key (sort {$a <=> $b} keys (%seedhash))
{
my ($min, $max) = minmax values %{$seedhash{$key}};
print "$key {";
for my $values (sort {$a <=> $b} keys %{$seedhash{$key}})
{
print "$values, ";
}
print "} $min : $max \n";
}
然而,我的输出是:
0.0 {0.0, 1.2, 2,0, 0.4, } HASH(0x13d13ec0) : HASH(0x142dad70)
0.2 {0.0, 0.1, 2.3, } HASH(0x137e7810) : HASH(0x142fef10)
我不确定我的语法是否正确。任何帮助都将不胜感激。您的数据毫无意义。它真的是
%seedhash
的转储吗?如果没有,请提供。@M42,数据已被修改。您的数据仍然没有意义。你确定这是转储的结果吗?不,这不是转储。hashref不能包含奇数个元素。(如果输入奇数,最后一个键将隐式接收undef
)Data::Dumper也不会以这种方式格式化HashRef。请显示实际的数据结构。
my %seedhash = ( '0.0' => [
'0.0',
'1.2',
'2.0',
'0.4',
],
'0.2' => [
'2.3',
'0.1',
'0.0',
]
);
use List::MoreUtils qw( minmax );
for my $key (sort {$a <=> $b} keys %seedhash)
{
my ($min, $max) = minmax @{$seedhash{$key}};
print "$key {";
for my $values (sort {$a <=> $b} @{$seedhash{$key}})
{
print "$values, ";
}
print "} $min : $max \n";
}
my %seedhash = ( '0.0' => [
'0.0',
'1.2',
'2.0',
'0.4',
],
'0.2' => [
'2.3',
'0.1',
'0.0',
]
);
use List::MoreUtils qw( minmax );
for my $key (sort {$a <=> $b} keys %seedhash)
{
my ($min, $max) = minmax @{$seedhash{$key}};
print "$key {";
for my $values (sort {$a <=> $b} @{$seedhash{$key}})
{
print "$values, ";
}
print "} $min : $max \n";
}
0.0 {0.0, 0.4, 1.2, 2.0, } 0.0 : 2.0
0.2 {0.0, 0.1, 2.3, } 0.0 : 2.3