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

Dan*_*ien 6 perl

我想使用该grep函数来过滤值列表,并将对已过滤列表的引用存储到哈希中.我所追求的是:

my $allValues = [
    'a',
    'unwanted value',
    'b',
    'c',
];

$stuff = {
    'values' => grep { $_ ne 'unwanted value' } @$allValues
};
Run Code Online (Sandbox Code Playgroud)

只有当我尝试时,%$stuff哈希是:

$VAR1 = {
          'b' => 'c',
          'values' => 'a'
        };

有没有办法修复匿名哈希创建代码,以便我得到:

$VAR1 = {
          'values' => [
                        'a',
                        'b',
                        'c'
                      ]
        };

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

Tud*_*tin 11

尝试:

$stuff = {
    'values' => [ grep { $_ ne 'unwanted value' } @$allValues ]
};
Run Code Online (Sandbox Code Playgroud)