我有以下哈希:
my %gilligan_info = (
name => 'Gilligan',
hat => 'white',
shirt => 'Red',
position => 'First Mate',
);
my %skipper_info = (
name => 'Skipper',
hat => 'Black',
shirt => 'Blue',
position => 'Captain'
);
我有一系列哈希:
my @crew = (\%gilligan_info, \%skipper_info);
我创建了一个引用:
my $ref = \%{$crew[1]};
我从第二个哈希中提取键值:
my @ref_values = @{$ref}{ qw ( name position hat )};
我的问题是,如何通过不在引用中指定元素编号来获取哈希值?#34; $ ref"?
由于
答案 0 :(得分:0)
如果您想要单个数组中所有哈希的值,
my @ref_values = map @$_{ qw(name position hat) }, @crew;
答案 1 :(得分:0)
我认为您希望@ref_values
包含每个@crew
的值数组。
这样的事,也许是
my @ref_values;
for my $crew ( @crew ) {
push @ref_values, [ @$crew{ qw(name position hat) } ];
}
如果您愿意,也可以使用map
,与Сухой27
的解决方案类似