【发布时间】:2023-03-22 09:58:01
【问题描述】:
我有返回数组哈希的函数:
print Dumper { &is_needle_in_haystack( \@model_groups_names, \%groups_by_name_HoA ) };
$VAR1 = { # Condensed
'ng_a2' => [ 'ng_a2', '*', 143, ],
'ng_b3' => [ 'ng_b3', '*', 144, '' ],
'ng_g1' => [ 'ng_g1', '*', 158, ],
'ng_a1' => [ 'ng_a1', '*', 143, ],
'ng_d2' => [ 'ng_d2', '*', 155, '' ]
};
从此输出中,我需要[2] 数组索引上的数字。我试过这个:
print Dumper map {$_->[2]} values &is_needle_in_haystack(\@model_groups_names, \%groups_by_name_HoA)
也尝试了这个部分解决方案,但也没有返回任何结果:
print Dumper values &is_needle_in_haystack(\@model_groups_names, \%groups_by_name_HoA);
我必须将其分解成更小的部分以获得所需的输出:
my %HoA = &is_needle_in_haystack(\@model_groups_names, \%groups_by_name_HoA);
my @A = values %HoA;
my @gid = map {$_->[2]} @A;
print Dumper @gid
$VAR1 = 143;
$VAR2 = 144;
$VAR3 = 158;
$VAR4 = 143;
$VAR5 = 155;
我做错了什么?我需要一些括号或线索是什么?
【问题讨论】:
-
您应该知道,如果您将子例程的返回值存储在哈希中,您可能会覆盖重复的键。如果这应该是一个哈希,这不是问题。您可能会发现返回哈希引用比返回列表更可取。
标签: perl