【发布时间】:2017-12-19 11:07:45
【问题描述】:
我想找到一个相当于 python var in list idiom 的 perl 并偶然发现了这个。
perl grep 可以做一个grep { $_ eq $var } @list 表达式来匹配列表逻辑中的元素。
如果我使用像 grep { $_ eq $var } @$list 这样的解除引用数组,其中 $list 定义为 ['foo', 'bar'],我不会得到相同的结果。
有没有办法使用取消引用的数组使 grep 工作?
【问题讨论】:
-
你能说得更具体点吗?请发布minimal reproducible example。
my $var = 'foo'; say for grep { $_ eq $var } @{ [qw/foo bar/] }对我来说就像 5.20.1 的魅力。 -
List::Util::any在这种情况下可能比grep更好,因为它在第一次匹配后停止。 -
Data::Munge::elem也可以这样做。
标签: arrays perl grep dereference