我有一个存储的多维散列(%info
),其结构如下:
$info{$os}{$id}=$length;
foreach $os (keys %info){
foreach $id (keys %{$info{$os}}){
print "$os $id => " . $info{$os}{$id} ."\n" if (keys %info > 100);
}
}
这样,我就可以读取哈希值,只打印出现次数超过100次的$os
,但现在我只想打印$length
(即值)最大的$id
,所以我想按值对哈希值排序,只打印值最大的$os
和$id
。
3条答案
按热度按时间ldioqlga1#
cld4siwp2#
有时候最难的事情就是准确地定义问题。
理解这段代码可以帮助您准确地定义问题,然后您就可以相当迅速地解决问题。
为了进一步参考,可能需要this question或this one。
ruoxqz4g3#
可以使用List::Util::reduce获取每个顶级键中具有最大值的键
若要取得所有索引键中的最大值
或者,也许更简单,在循环中比较顶级键