Perl - 如果字符串为空则使用 0

Sub*_*beh 3 perl

当算术表达式与未定义或空字符串结合使用时,perl 会抛出错误。如果字符串为空,是否有一种干净的方法来使用零?

这不起作用:

$x = 1 + $emptyVar
Run Code Online (Sandbox Code Playgroud)

在 bash 中,如果变量 $emptyVar 为空,您可以使用类似的方法来使用零:

x=1+${emptyVar:-0}
Run Code Online (Sandbox Code Playgroud)

我正在寻找与此类似的东西

Tan*_*lus 5

有很多方法可以做到这一点。例如:

$x = $emptyVar;
$x += 1;
Run Code Online (Sandbox Code Playgroud)

或者可能:

$x = 1 + ($emptyVar // 0); # defined-or operator
Run Code Online (Sandbox Code Playgroud)

或者可能:

{
  no warnings 'uninitialized';
  $x = 1 + $emptyVar;
}
Run Code Online (Sandbox Code Playgroud)

其中,我通常使用第二个。如果我使用的 perl 级别没有定义-or,那么简单的 or ( ||) 也可以正常工作。