2
将算术表达式与未定义或空字符串组合使用时,perl会引发错误。如果字符串为空,是否有一个干净的方法来使用零?Perl - 如果字符串为空,则使用0
这不起作用:
$x = 1 + $emptyVar
在bash你可以使用这样的事情,例如使用零,如果变量$ emptyVar是空的:
x=1+${emptyVar:-0}
我寻找类似的东西如此
将算术表达式与未定义或空字符串组合使用时,perl会引发错误。如果字符串为空,是否有一个干净的方法来使用零?Perl - 如果字符串为空,则使用0
这不起作用:
$x = 1 + $emptyVar
在bash你可以使用这样的事情,例如使用零,如果变量$ emptyVar是空的:
x=1+${emptyVar:-0}
我寻找类似的东西如此
有很多方法可以做到这一点。例如: -
$x = $emptyVar;
$x += 1;
或可能:
$x = 1 + ($emptyVar // 0); # defined-or operator
或可能:
{
no warnings 'uninitialized';
$x = 1 + $emptyVar;
}
这些,我通常使用第二个。如果我使用的perl级别没有定义,或者简单的或(||
)也可以正常工作。
谢谢!我正在寻找 – Subbeh
这个问题说undefined或* empty string *,所以'$ x = 1 +($ emptyVar || 0);'而不是 – ysth
@ysth - 这是真的,但是当它与shell中的“empty”和“undef”在很大程度上难以区分,我认为这是OP的意思。 – Tanktalus