Perl,获取所有哈希值

Mik*_*ike 6 perl hash list

让我们说在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中有更简洁的方法吗?

Eva*_*oll 6

是.有.

my @list = map {
    exists $_->{foo} ? $_->{foo} : die 'hashed lacked foo'
  }
  @hash_list
;
Run Code Online (Sandbox Code Playgroud)