Perl如何检查数组是否仍为空?

JDS*_*JDS 32 arrays perl

希望这很简单.我初始化一个空数组,做一个grep并将结果(如果有的话)放入其中,然后检查它是否为空.像这样:

my @match = ();
@match = grep /$pattern/, @someOtherArray;
if (#match is empty#) {
    #do something!
}
Run Code Online (Sandbox Code Playgroud)

这样做的标准方法是什么?

mob*_*mob 59

您将看到所有这些习惯用于测试数组是否为空.

if (!@match)
if (@match == 0)
if (scalar @match == 0)
Run Code Online (Sandbox Code Playgroud)

在标量上下文中,数组被计算为它包含的元素数.

  • 不要忘记`除非(@match)` (12认同)
  • [忘了`除非(@match)`](http://search.cpan.org/perldoc?Perl::Critic::Policy::ControlStructures::ProhibitUnlessBlocks).(但这就像,我的意见,男人) (12认同)