如何获取Perl的grep返回的列表的引用?

时间:2012-11-05 17:11:39

标签: perl

我想使用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'
                      ]
        };

但是不是通过创建局部变量或调用子程序(换句话说,所有内联)?

1 个答案:

答案 0 :(得分:11)

尝试:

$stuff = {
    'values' => [ grep { $_ ne 'unwanted value' } @$allValues ]
};