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

是否有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"

    }]

}]


叮当猫咪
浏览 86回答 1
1回答

互换的青春

在不循环的情况下执行检查是不可能的,但您确实可以使用它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;第一个版本效率更高,因为它只在所有之前的组都检查正常时才查看一个组,而第二个版本无条件地对每个组都有效。不过,这种差异不太可能重要。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python