2016-11-22 31 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

相關問題