Perl5 perldata - Perl のデータ構造
[変数名][コンテキスト][スカラ値][スカラ値の構成][リスト値の構成][データ型]
コンテキスト
Perl における演算や値の解釈は、その演算や値の置かれたコンテキストからの要求に依存する場合があります。
このコンテキストというものには大きく 2 つあり、スカラコンテキストとリストコンテキストと呼ばれます。
リストが要求されるコンテキストではリスト値を返し、そうでなければスカラ値を返すような演算も存在します。
(そのような演算については、ドキュメントでその演算に触れるときに付記しています。)
言い方を変えると、Perl では、ある種の演算が 1 つの値を返して欲しいか、複数の値を返して欲しいかによって多重定義されているということです。
("fish" や"sheep" といった、単複同形の英単語と似ているかもしれません。)

逆に、演算子は自分の引数が、スカラコンテキストとリストコンテキストのどちらで解釈されるかを決めてしまいます。
たとえば、
     int( <STDIN> )
と書くと、int 演算子は、自分の引数である <STDIN> 演算子がスカラコンテキストで評価されることを期待するため、<STDIN> は、STDIN から 1 行を読み出し int 演算子に渡します。
int 演算子は、その行から整数値を取り出して返すことになります。
これに比べて、もし、
     sort( <STDIN> )
と書いたなら、sort 演算子は、<STDIN> 演算子がリストコンテキストで評価されるようにするため、<STDIN> は STDIN から読める限り最後の行まで読み出し、その行のリストを sort のルーティンに返します。
sort ルーティンは受け取った行のリストをソートして、ソートした結果のリストが値となります。

代入演算は少し特殊です。
代入では、右引数のコンテキストを決めるために左引数が使われます。
スカラへの代入では、右側をスカラコンテキストで評価しますが、配列や配列のスライスに対する代入では、右側をリストコンテキストで評価することになります。
リストへの代入も右側をリストコンテキストで評価することになります。

ユーザが定義するサブルーティンは、自分がスカラコンテキストで呼ばれたか、リストコンテキストで呼ばれたかを意識することができますが、多くのサブルーティンでは意識する必要もないでしょう。
スカラ値は自動的にリストの要素になることができるからです。
perlfunc manpage の wantarray の項を参照してください。

出典:Perl manpages Last change: Release 5.0 Patchlevel 00 5