Robert Allerstorfer: "$variable eq 0" bei $^W = 1

Beitrag lesen

Hi,

wenn ein Perl programm bei eingeschaltetem warnings flag ($^W = 1) abfrägt, ob der wert einer variable gleich 0 ist (if $variable eq 0), die variable aber undefiniert ist, gibt es eine warning message ("Use of uninitialized value in string eq ..."). Natürlich will aber ein (womöglich vom wahnsinn getriebener) Perl programmierer seinen code 100 % use strict und -w kompatibel haben, also gilt es, eine lösung zu finden, die niemals zu warnings führt.

Daher frage ich immer vorher ab, ob der wert einer variable wahr ergibt, bevor weitere abfragen über den wert erfolgen, also

if ($variable && $variable eq 1) { print "$variable:\t$variable" }

Solche abfragen funktionierten aber nur, wenn der abgefragte wert ungleich null ist, also

if ($variable && $variable eq 0)

kann man vergessen. Gibt es nicht irgendwie die möglichkeit, abzufragen, ob eine variable definiert ist, anstatt abzufragen, ob sie wahr ergibt?

Danke für tipps!

rob.