Kurt: Kontrollstrukturen mit teilweise auswertenden Operatoren

Beitrag lesen

Hi

Nur wenn $worte{$einname} nicht undef oder 0 (!!!) ist,

oder kein Leerstring.

Danke, also generell undefiniert oder unbelegt oder 0.

(leere Hashes oder Arrays sind nämlich auch "falsch")

Umsteiger müssen sich klar machen das Perl keinen Booleschen Datentyp mit den Werten "true" oder "false" hat. Bedingungen sind bei den obigen Fällen falsch und ansonsten wahr.

Was bei einem geklammerten logischen Ausdruck rauskommt, hängt von den Rückgabewert der Einzelterme und ihrer Position ab und ist kein "true" oder "false".

In Javascript ist es übrigens ähnlich...

alert(0 || "trulla") ergibt "trulla" (rechte Seite musste ausgewertet werden)

alert(1 || "trulla") ergibt 1 (rechte Seite konnte übersprungen werden)

Tschau
  Kurt