讓我們說在Perl中我有一個哈希引用列表,每個都需要包含某個字段,比如說foo
。我想創建一個包含foo
的所有映射的列表。如果存在不包含foo
的散列,則該過程將失敗。Perl,獲取所有散列值
@hash_list = (
{foo=>1},
{foo=>2}
);
my @list =();
foreach my $item (@hash_list) {
push(@list,$item->{foo});
}
#list should be (1,2);
在Perl中有更簡潔的方法嗎?
我只是想澄清你沒有創建一個映射列表,你正在創建一個包含每個hashes'foo'值的列表,而你的代碼示例與'process failing'無關,所以你不只是要求更簡潔。 – 2010-06-15 20:25:04
一般來說:每當你發現自己正在做'foreach ... {... push ..}'你可以使用map或grep使代碼變得更簡單和簡單。 – Ether 2010-06-15 20:32:22