Chr*_*ris 3 python perl perl-data-structures
是否有工作像Python函数Perl函数all或any?Jobin的答案是对这两种功能如何运作的简短解释.
我想确定(没有循环)是否所有error-msg都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"
}]
}]
Run Code Online (Sandbox Code Playgroud)
没有循环就不可能执行检查,但你确实all可以这样做.
use List::Util qw( all );
my $ok =
all {
all { $_->{err_msg} }
@{ $_->{row} }
}
@$VAR1;
Run Code Online (Sandbox Code Playgroud)
要么
use List::Util qw( all );
my $ok =
all { $_->{err_msg} }
map { @{ $_->{row} } }
@$VAR1;
Run Code Online (Sandbox Code Playgroud)
第一个版本效率更高,因为它只查看一个组,如果所有以前的组都检查正常,而第二个版本无条件地适用于每个组.不过,这种差异不太重要.
| 归档时间: |
|
| 查看次数: |
86 次 |
| 最近记录: |