リストとは
今まで使用してきた値は数値であっても文字列であっても1つの値でした。例えば変数に数値を代入する場合の例で考えてみます。
$var = 10;
上記の場合は「10」と言う1つの値を変数「$var」に格納しています。
それに対してリストというのは複数の値を表すのに使用されます。リストの書式は次の通りです。
(値1, 値2, 値3, ...)
リストでは複数の値をカンマで区切って並べ括弧()で囲います。値はいくつ並べても構いません。リストに含まれる各値は要素とも呼ばれます。
例えば数値の「1」「2」「3」と言う3つの値を持つリストは次のように表されます。
(1, 2, 3)
同じように文字列の「男性」「女性」と言う2つの値を持つリストは次のように表されます。
("男性", "女性")
リストは順番を持っています。値が記述された順に並べられていると考えて下さい。上の例で言えば「男性」の次の値は「女性」であり、「女性」の前の値は「男性」です。
リストを変数に格納する
値と同じくリストを変数に格納することが出来ます。リストは複数の値を並べて記述したものですから、格納される変数も複数になります。リストを変数に格納する場合は次の書式となります。
(変数1, 変数2, 変数3, ...) = (値1, 値2, 値3, ...);
格納する変数もリストと同じようにカンマで区切って並べ括弧()で囲います。これは次のように記述した場合と同じです。
変数1 = 値1; 変数2 = 値2; 変数3 = 値3;
ただし正確には同じではありません。格納されるリストの中の値は全ての格納が終わるまで変化しません。これについては「リストの要素に変数を使用」を参照して下さい。
実際のプログラム例としては次のようになります。
my ($var1, $var2, $var3); ($var1, $var2, $var3) = ("月曜", "火曜", "水曜");
サンプルプログラム
では簡単なプログラムで確認して見ます。
use strict; use warnings; use utf8; binmode STDIN, ':encoding(cp932)'; binmode STDOUT, ':encoding(cp932)'; binmode STDERR, ':encoding(cp932)'; my ($var1, $var2, $var3); ($var1, $var2, $var3) = ("月曜", "火曜", "水曜"); print "$var1¥n"; print "$var2¥n"; print "$var3¥n";
上記を「test1-1.pl」の名前で保存します(文字コードはUTF-8です)。そしてコマンドプロンプトを起動し、プログラムを保存したディレクトリに移動してから次のように実行して下さい。
( Written by Tatsuo Ikura )