【发布时间】:2011-04-15 14:18:58
【问题描述】:
最好的例子是:
my $var1=1;
my $var2;
my $var3=3;
# say "at least one undef" if at least one of $var1, $var2, $var3 is undef
显然我可以显式循环并执行此操作,但我总是喜欢找到一个能够达到相同结果的衬垫。
【问题讨论】:
标签: perl undefined-index
最好的例子是:
my $var1=1;
my $var2;
my $var3=3;
# say "at least one undef" if at least one of $var1, $var2, $var3 is undef
显然我可以显式循环并执行此操作,但我总是喜欢找到一个能够达到相同结果的衬垫。
【问题讨论】:
标签: perl undefined-index
if (grep { !defined } $var1, $var2, $var3) {
say 'at least one undef'
}
一个班轮
say 'at least one undef' if grep { !defined } $var1, $var2, $var3;
【讨论】:
// 是一个短路运算符,因此如果您有一个要根据单个值的定义有条件地执行的代码路径,它将很有用。我想不出这里有什么用,但是 TMTOWTDI。
// 是定义或,所以它只能用于计算“至少一个定义”。要获得“至少一个 undef”,您需要一个已定义的与运算符,该运算符(当前)不存在。
扩展 Bob 的答案,在某些情况下,您可能想要获取实际计数
say 'has ', scalar ( grep { not defined } $var1,$var2,$var3 ),' undef';
【讨论】: