提问人:David B 提问时间:9/22/2010 最后编辑:brian d foyDavid B 更新时间:9/22/2010 访问量:1139
如何检查Perl中的值是否为undef?
How can I check if a value is undef in Perl?
问:
最好举个例子:
my $var1=1;
my $var2;
my $var3=3;
# say "at least one undef" if at least one of $var1, $var2, $var3 is undef
显然,我可以明确地循环并做到这一点,但我总是喜欢找到一个达到相同结果的衬里。
答:
10赞
Bob
9/22/2010
#1
if (grep { !defined } $var1, $var2, $var3) {
say 'at least one undef'
}
一个衬垫
say 'at least one undef' if grep { !defined } $var1, $var2, $var3;
评论
0赞
Bob
9/22/2010
//
是一个短路运算符,因此,如果您有一个代码路径,要根据单个值的定义有条件地执行,这将很有用。我想不出这里的用处,但 TMTOWTDI。
0赞
cjm
9/22/2010
@David B 是 defined-or,因此它只能用于计算“至少一个定义”。要获得“至少一个 undef”,您需要一个 defined-and 运算符,该运算符(当前)不存在。//
1赞
erickb
9/22/2010
#2
扩展 Bob 的答案,在某些情况下,您可能希望获取实际计数
say 'has ', scalar ( grep { not defined } $var1,$var2,$var3 ),' undef';
评论