2016-11-22 10 views
2

算術式を未定義または空文字列と組み合わせて使用​​すると、perlはエラーをスローします。文字列が空の場合にゼロを使用するきれいな方法はありますか?Perl - 文字列が空の場合は0を使用します。

これは動作しません:変数$ emptyVarが空の場合はゼロを使用するインスタンスに対して、このようなものを使用することができますbashで

$x = 1 + $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

質問は未定義であるとか空文字列なので、代わりに – ysth

+0

@ysth - 真になりました。 "undef"はほとんど区別できないので、私はOPが意味した良いチャンスがあると思った。 – Tanktalus

関連する問題