6

この関数を使用してgrep、値のリストをフィルター処理し、フィルター処理されたリストへの参照をハッシュに格納したいと思います。私が求めているのは次のようなものです。

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

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

ただ、それを試してみると、%$stuffハッシュは次のようになります。

$ VAR1 = {
          'b' =>'c'、
          '値'=>'a'
        };

匿名のハッシュ作成コードを修正して、代わりに次のようにする方法はありますか?

$ VAR1 = {
          '値'=>[
                        'a'、
                        'b'、
                        'c'
                      ]
        };

しかし、ローカル変数を作成したり、サブルーチンを呼び出したりすることによって(つまり、すべてインラインで)ではありませんか?

4

1 に答える 1

11

試してみてください:

$stuff = {
    'values' => [ grep { $_ ne 'unwanted value' } @$allValues ]
};
于 2012-11-05T17:12:53.767 に答える