希望这应该很简单。我初始化一个空数组,执行 grep 并将结果(如果有)放入其中,然后检查它是否为空。像这样:
my @match = ();
@match = grep /$pattern/, @someOtherArray;
if (#match is empty#) {
#do something!
}
这样做的标准方法是什么?
您将看到所有这些用于测试数组是否为空的习语。
if (!@match)
if (@match == 0)
if (scalar @match == 0)
在标量上下文中,数组被评估为其包含的元素数。
如果您使用的是 arrayref 而不是数组,例如
my $existing_match = data_layer->find('Sale',{id => $id});
说上面返回一个数组,然后使用:
if( scalar(@$existing_match) == 0)
我也发现这也有效,但我不确定它是否记录在案:
if ($#match == -1)