Perl 挂件用于 Python 内置函数 'all' 和 'any'



有没有像 Python 函数allany一样工作的 Perl 函数?来自 Jobin 的这个答案是对这两个函数如何工作的简短解释。

我想确定(没有循环(是否所有错误消息都defined and ne ""以下结构:

$VAR1 = [{
'row' => [{
err_msg => "msg1",
a => "a1",
b => "b1"
},
{
err_msg => "msg2",
a => "a2",
b => "b2"
}]
},
{
'row' => [{
err_msg => "msg3",
a => "a3",
b => "b3"
},
{
err_msg => "msg4",
a => "a4",
b => "b4"
}]
}]

不循环就不可能执行检查,但您确实可以使用all来执行此操作。

use List::Util qw( all );
my $ok =
all {
all { $_->{err_msg} }
@{ $_->{row} }
}
@$VAR1;

use List::Util qw( all );
my $ok =
all { $_->{err_msg} }
map { @{ $_->{row} } }
@$VAR1;

第一个版本更有效,因为如果所有先前的组都签出正常,它只会查看一个组,而第二个版本无条件地适用于每个组。不过,这种差异不太可能重要。

最新更新