2

最好举个例子:

my $var1=1;
my $var2;
my $var3=3;

# say "at least one undef" if at least one of $var1, $var2, $var3 is undef

显然我可以明确地循环并做到这一点,但我总是喜欢找到一个达到相同结果的衬垫。

4

2 回答 2

10
if (grep { !defined } $var1, $var2, $var3) {
  say 'at least one undef'
}

一个班轮

say 'at least one undef' if grep { !defined } $var1, $var2, $var3;
于 2010-09-22T07:44:02.023 回答
1

扩展 Bob 的答案,在某些情况下,您可能想要获取实际计数

say 'has ', scalar ( grep { not defined } $var1,$var2,$var3 ),' undef';
于 2010-09-22T10:12:47.457 回答