Kontext

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

Manche Ausdrücke können unterschiedlich bewertet werden, je nachdem, ob sie in einem skalaren Kontext oder in einem Listen-Kontext stehen. Kontext bezieht sich hier jeweils auf den anderen Operanden (z.B. die linke Seite einer Zuweisung).

*Der Wert einer Listenvariablen ist im Listen-Kontext die gesamte Liste.
 
*Wenn jedoch eine Listenvariable im skalaren Zusammenhang verwendet wird, so wird die Länge der Liste als Wert verwendet. Entsprechend kann die Anzahl der Freunde ausgegeben werden:

print "Sie haben ", @friends + 0, " Freunde\n";
Das Addieren der Null erzwingt hier einen skalaren Kontext, so daß wir die Länge der Liste erhalten und nicht all die vielen Elemente der Liste. Dies geht allerdings auch etwas lesbarer und weniger trickreich mit Hilfe des scalar-Operators, der einen skalaren Kontext erzwingt:

print "Sie haben ", scalar @friends, " Freunde\n";

 

*Ein Listenkonstruktor liefert im skalaren Kontext das letzte Element der Liste.
 
*Bei Funktionen oder Operatoren, die potentiell eine Liste zurückliefern können, gibt es keine allgemeine Regel, was in Abhängigkeit des Kontexts zurückgeliefert wird.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 1996 - 2003 Andreas Borchert, in HTML konvertiert am 01.10.2003