多余的使用//,或必要的

时间:2014-10-08 14:56:27

标签: perl

我遇到了以下遗留代码:

sub some_func {
    my $val = $ENV{some_key} // '';
    if ( length($val) ) {
        return $val;
    }

    return 0;
}

通常我会认为这是错综复杂的,并重写为:

sub some_func {
    return $ENV{some_key} || 0;
}

但是写这篇文章的程序员非常好。我错过了什么吗?

1 个答案:

答案 0 :(得分:8)

原件:

  • 空字符串⇒零(作为数字)
  • 字符串零⇒零(作为字符串)
  • 数字零⇒零(作为数字)
  • 未定义⇒零(作为数字)

其他所有东西都返回$ ENV {some_key}


重写:

  • 空字符串⇒零(作为数字)
  • 字符串零⇒零(作为数字)
  • 数字零⇒零(作为数字)
  • 未定义⇒零(作为数字)

其他所有东西都返回$ ENV {some_key}


因此,不存在重大差异,但在某些情况下确实如此(例如encode_json)。不过,我认为差异是无意的。