是否有Perl的功能,像Python函数的工作all还是any?我想确定(无循环)是否所有错误消息都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" }]}]
1 回答
互换的青春
TA贡献1797条经验 获得超6个赞
在不循环的情况下执行检查是不可能的,但您确实可以使用它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;
第一个版本效率更高,因为它只在所有之前的组都检查正常时才查看一个组,而第二个版本无条件地对每个组都有效。不过,这种差异不太可能重要。
添加回答
举报
0/150
提交
取消