让我们说在Perl中我有一个哈希引用列表,每个都需要包含一个字段,比方说foo
.我想创建一个包含所有映射的列表foo
.如果存在不包含foo
该进程的哈希则应该失败.
@hash_list = (
{foo=>1},
{foo=>2}
);
my @list = ();
foreach my $item (@hash_list) {
push(@list,$item->{foo});
}
#list should be (1,2);
Run Code Online (Sandbox Code Playgroud)
在Perl中有更简洁的方法吗?
是.有.
my @list = map {
exists $_->{foo} ? $_->{foo} : die 'hashed lacked foo'
}
@hash_list
;
Run Code Online (Sandbox Code Playgroud)