High!
Hugh Yadgar
Damit dus auch richtig verstehst...
Habe das Buch selbst konnte dieses Listing aber nicht finden, allerdings das Kapitel "Kontrollstrukturen mit teilweise auswertenden Operatoren" S. 162
1. Bei && || und ?: wird die rechte Seite nicht ausgewertet wenn die linke reicht. (deswegen wird auch von Kurzschlussoperatoren gesprochen).
2. Rückgabewert der Operationen ist (im Gegensatz zu anderen Sprachen) kein Boolescher Wert sondern der letzte ausgertete Ausdruck!!!
z.B. liefert
print ( ($n!=0) && (5/$n) );
Für $n ungleich 0 den Divisionswert aus der rechten Seite
Für $n=0 gibts aber keine Fehlermeldung, weil die Rechte Seite nicht erreicht wird.
elsif (($worte{$einname} || "groucho") eq $einrateversuch)
Nur wenn $worte{$einname} nicht undef oder 0 (!!!) ist, ist "groucho" Rückgabewert der Klammer, und der wird dann mit $einrateversuch verglichen.
Tschau
Kurt