Thread perl variablen leer ?: to initiier or not to initiier ?
(19 answers)
Opened by rio at 2004-06-02 22:39
[quote=sri,03.06.2004, 02:09]Das Beispiel ist völlig egal.
Nicht initialisierte Scalare (SvNULL) sind in jedem Kontext equivalent zu "undef", erst mit einer Wertezuweisung gelten dann die jeweilig spezifischen Kontext Regeln des Wertes. (String, Number, Reference)[/quote] Wenn du einen undefinierten Wert neben einen Vergleichsoperator setzt, erzwingst du einen Kontext. Daher kommt es, dass undef == 0 und undef eq "" beide wahr ergeben. Ein Vergleich ist somit eine schlechte Methode um herauszufinden, ob ein Wert undef ist. Die Pruefung mit defined(...) ist der richtige Weg. Ich haette auch sowas schreiben koennen: Code: (dl
)
perl -e '$test = 0; print "VARIABLEN SIND IMMER UNDEF!\n" if my $test eq undef' $test ist einwandfrei nicht undef, aber der Vergleich ist wahr. |