2016-11-22 52 views
2

将算术表达式与未定义或空字符串组合使用时,perl会引发错误。如果字符串为空,是否有一个干净的方法来使用零?Perl - 如果字符串为空,则使用0

这不起作用:

$x = 1 + $emptyVar 

在bash你可以使用这样的事情,例如使用零,如果变量$ emptyVar是空的:

x=1+${emptyVar:-0} 

我寻找类似的东西如此

回答

4

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

$x = $emptyVar; 
$x += 1; 

或可能:

$x = 1 + ($emptyVar // 0); # defined-or operator 

或可能:

{ 
    no warnings 'uninitialized'; 
    $x = 1 + $emptyVar; 
} 

这些,我通常使用第二个。如果我使用的perl级别没有定义,或者简单的或(||)也可以正常工作。

+0

谢谢!我正在寻找 – Subbeh

+0

这个问题说undefined或* empty string *,所以'$ x = 1 +($ emptyVar || 0);'而不是 – ysth

+0

@ysth - 这是真的,但是当它与shell中的“empty”和“undef”在很大程度上难以区分,我认为这是OP的意思。 – Tanktalus

相关问题