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.
|