steckl: Perl Syntaxfrage

Beitrag lesen

Hi,

so geht's:

Normalerweise müsstest du da mindestens eine Warnung erhalten, wenn du sauber programmiert hast.

Sowas in der Art:
Argument "undefined" isn't numeric in numeric ne (!=)

if ( $check != "undefined") {main::mprint "$check";}

Wenn du Strings vergleichen willst musst du "ne" statt "!=" verwenden.
Deine Bedingung ist immer dann wahr, wenn in $check eine Zahl ungleich 0 steht, weil ein String (hier "undefined") hier als 0 interpretiert wird.

Wenn du prüfen möchstest ob eine Variable undefined ist solltest du, wie bereits von Andreas empfohlen, defined() verwenden, dann brauchst du weder "ne" noch "!=".

"undefined" heißt in Perl übrigens undef, aber das brauchst du hier nicht.

mfG,
steckl