我想使用grep
函数来过滤值列表,并将对已过滤列表的引用存储到哈希中。我所追求的是:
my $allValues = [
'a',
'unwanted value',
'b',
'c',
];
$stuff = {
'values' => grep { $_ ne 'unwanted value' } @$allValues
};
只有当我尝试时,%$stuff
哈希是:
$VAR1 = { 'b' => 'c', 'values' => 'a' };
有没有办法修复匿名哈希创建代码,以便我得到:
$VAR1 = { 'values' => [ 'a', 'b', 'c' ] };
但是不是通过创建局部变量或调用子程序(换句话说,所有内联)?
答案 0 :(得分:11)
尝试:
$stuff = {
'values' => [ grep { $_ ne 'unwanted value' } @$allValues ]
};