【问题标题】:How can I check if a value is undef in Perl?如何检查 Perl 中的值是否为 undef?
【发布时间】: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


【解决方案1】:
if (grep { !defined } $var1, $var2, $var3) {
  say 'at least one undef'
}

一个班轮

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

【讨论】:

  • // 是一个短路运算符,因此如果您有一个要根据单个值的定义有条件地执行的代码路径,它将很有用。我想不出这里有什么用,但是 TMTOWTDI。
  • @David B, // 是定义或,所以它只能用于计算“至少一个定义”。要获得“至少一个 undef”,您需要一个已定义的与运算符,该运算符(当前)不存在。
【解决方案2】:

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

say 'has ', scalar ( grep { not defined } $var1,$var2,$var3 ),' undef';

【讨论】:

    猜你喜欢
    • 2019-01-13
    • 1970-01-01
    • 2011-02-10
    • 2016-10-20
    • 2012-09-26
    • 2012-09-15
    • 1970-01-01
    • 1970-01-01
    • 2012-05-06
    相关资源
    最近更新 更多