【发布时间】:2017-05-15 01:35:12
【问题描述】:
在 Perl 中,
my @lista = ['THE', 'KITE', 'RUNNER'];
my @listb = grep { $_ ne 'KITE' } @lista;
print "" . Data::Dumper->Dump(\@listb);
什么都不打印
my @lista = ('THE', 'KITE', 'RUNNER');
my @listb = grep { $_ ne 'KITE' } @lista;
print "" . Data::Dumper->Dump(\@listb);
打印一个包含“THE”“RUNNER”的数组。
为什么在 [] 中定义数组时 grep 不起作用?
如何对[]中定义的数组进行grep操作?
【问题讨论】:
-
我看不出它是如何“什么都不打印”的。您的
@lista有一个元素是arrayref,如ikegami 的回答中所述。这不等于'KITE',因此grep块中的条件为真,并且该元素通过。所以@listb包含一个元素,一个分配给@lista的引用。这当然不是你想要的,但print Dump(\@listb)应该打印出来。