我有哈希散列,其中第一个键是字符串,第二个键是整数。我正试图获得哈希散列中最低的第二个键。这是我的哈希。
%HoH = (
flintstones => {
8 => "fred",
4 => "barney",
},
jetsons => {
5 => "george",
1 => "jane",
9 => "elroy", # Key quotes needed.
},
simpsons => {
99 => "homer",
5 => "marge",
3 => "bart",
},
);
如何获取哈希simpsons
的最低(最小)密钥?在这种情况下,答案是3
。我能找到的最接近的相关搜索是获取具有最高值的密钥的方法。但我正试图获得具有最低数值的密钥。
================== EDIT ============ MY ATTEMPT ============== ==
foreach my $cartoon (keys %HoH){
if ($cartoon == "simpsons"){
$HoH{$cartoon}{<numeric key>}; # somehow store and print lowest key
}
}
我无法按顺序循环键(1,2,3,4等),只是存储并返回最低键,因为键(1,2,3,4等)可能不存在。我可能会尝试将密钥存储在一个单独的数组中,并获得存储在该数组中的最小密钥。那是我的尝试。这是一种关于这样做的方式。由于它是一个圆形的方式,接下来我会做更多的谷歌搜索,看看是否有一个更简单的方法(一个单行方式)来做它。
答案 0 :(得分:7)
use List::Util qw(min);
print min(keys(%{$HoH{simpsons}}));
答案 1 :(得分:3)
my $min = (sort {$a <=> $b} keys $HoH{'simpsons'})[0];
print $min;