sgs*_*sax 6 sorting perl map hash-of-hashes
我有哈希哈希,如下:
%hash = ( a => { b => 1, c =>2, d => 3},
a1 => { b => 11, c =>12, d => 13},
a2 => { b => 21, c =>22, d => 23} )
我想提取"b"元素并将其放入数组中.现在,我正在遍历哈希来执行此操作,但我认为我可以通过使用map来略微提高效率.我很确定如果这是一个哈希数组,我会使用这样的东西:
@hasharray = ( { b => 1, c =>2, d => 3},
{ b => 11, c =>12, d => 13},
{ b => 21, c =>22, d => 23} )
@array = map { ($_->{b} => $_) } @hasharray
请原谅我,如果我错了,我还在学习地图是如何工作的.但我想知道的是如何绘制哈希哈希的映射?这甚至可以使用地图吗?我还没有找到任何这样做的例子.
更好的是,此代码的下一步是在数组填充后对其进行排序.我很确定这是可能的,但是我在使用地图自己弄清楚时并不够聪明.我怎样才能一次性完成这一切?
谢谢.赛斯
Eug*_*ash 11
这提取并排序所有"b":
my @array = sort { $a <=> $b } map $_->{b}, values %hash;
Run Code Online (Sandbox Code Playgroud)