Perlの変数には3種類ある、というのは以前のページで説明しました。
ここでは、そのうちのひとつ「配列」についてのお話です。
配列は、数値や文字などを順番に並べて置いておく入れ物です。
@kamoku = ('国語', '算数', '理科', '社会');
@channel = (1, 3, 4, 6, 8, 10, 12);
@list = ($x, $y, $z);
@iroiro = ('国語', 3, $x, "$y点です");
@month = (1..12);
@kara = ();
上の例では、
@kamoku には、国語、算数、理科、社会の順に文字が入ります。
@channel には、1 3 4 6 8 10 12 の順に数字が入ります。
@list には、$x と $y と $z の中に入ってるデータが順に入ります。
@iroiro のようにデータを入れることができます。
@month には、1 から 12 までの12個の整数が順に入ります。
@kara は 配列の中身を空っぽにしています。
配列にデータを入れる時には、( )で囲み、それぞれを , で区切ります。
@month の .. は特殊な表現で、数字が1つずつ増えていくことを表します。
@kamoku = ('国語', '算数', '理科', '社会');
$n = @kamoku;
$x = $kamoku[0];
$y = $kamoku[2];
push(@kamoku, '英語');
$n = @kamoku;
上の例では、最初に @kamoku に4教科を入れます。
次に、$n に @kamoku の中に入っているデータの個数(要素数)を入れます。この場合は $n には 4 が入ります。
$x には @kamoku の中の 0 番目のデータが入ります。この場合は「国語」。
$y には @kamoku の中の 2 番目のデータが入ります。この場合は「理科」。
配列の順番は 0 から始まります。
$配列名[番号] の形で、配列の中の1つを取り出すことができます。
push(配列, データ) は 配列の最後にデータを加える命令です。
@kamoku の「社会」の後ろに「英語」を加えています。
最後にもう一度要素数を数えます。
ひとつ前に「英語」が加わっていますので、$n には 5 が入ります。
@month = (1..12);
@tuki = ();
foreach my $m (@month) {
push(@tuki, "$m月");
}
配列 と foreach とは、切っても切り離せない関係です。
上の例では、1 から 12 の数字を、ひとつずつ順番に $m に入れ、それぞれに「月」を加えた文字を、@tuki に入れています。
@tuki には、「1月」から「12月」までの文字が入ります。
おまけ:
配列にデータを入れるときに、カンマで区切ったり ' をつけるのが面倒なことがあります。そんなときに重宝するのが qw( ) です。
@kamoku = ('国語', '算数', '理科', '社会');
@kamoku = qw(国語 算数 理科 社会);
上の2行ともまったく同じ意味です。
qw を カッコの前につけると、カッコ内の文字は スペース で区切っていることになるのです。すっきりするでしょ?
※コメント投稿者のブログIDはブログ作成者のみに通知されます