変数は整理ボックス
Perl の「ハッシュ」はラベル付きの引き出しのようなものだと例えましたが、配列は、入れ物で例えると「収納ケース」等の長い引き出しに当たります。
「収納ケース」である配列では、一つのケースにたくさんのものが入りますが、順番に出し入れしないと、どこに何が入っているかを探すのがちょっと大変です。
配列を表す Perl の変数記号は「@」です。
Perl の配列は長い収納ケースのようなものです
配列の操作方法
では早速、サンプルプログラムを見てみましょう。まずは、少し退屈ですが配列の基本操作を理解するためのプログラムです。#Perl の配列の扱いを覚えるためのプログラム use strict; use warnings; use utf8; binmode STDOUT, 'encoding(utf8)'; #Windows の場合は utf8 -> cp932 my @hairetu; $hairetu[0] = '猫'; $hairetu[1] = 'エンジニア'; $hairetu[2] = 87; print "配列 \@hairetu の 2 番目の要素は $hairetu[1] です。\n"; printf ("配列 \@hairetu の要素数は %d 個です。\n", scalar @hairetu); print "配列 \@hairetu の最後の添字番号は $#hairetu です。\n";
出力は以下のようになります。
配列 @hairetu の 2 番目の要素は エンジニア です。 配列 @hairetu の要素数は 3 個です。 配列 @hairetu の最後の添字番号は 2 です。さあ、ここには色々な要素が詰まっていますね。順番に説明します。
配列の各部の名前
まず、配列は、「スカラー変数をグループにして番号を付けた変数」です。一つの配列に含まれる一つ一つの値の事を配列の「要素」と呼びます。番号は「添字(そえじ)」または「添字番号」と呼びます。Perl の配列の構成
添字の使い方
添字は 0 から始まり、いくつでも増やす事ができます。サンプルプログラムでは、手動で添字の 0 から 2 に値を代入していますが、もし途中に欠番があった場合は、自動的にそこに要素が作られます。例えば以下のようにプログラムの代入部分を変更してみましょう。
my @hairetu; $hairetu[1] = '猫'; $hairetu[3] = 'エンジニア'; $hairetu[5] = 87; print "配列 \@hairetu の 2 番目の要素は $hairetu[1] です。\n"; printf ("配列 \@hairetu の要素数は %d 個です。\n", scalar @hairetu); print "配列 \@hairetu の最後の添字番号は $#hairetu です。\n";
代入の時の添え字番号を変更しただけですが、出力は以下のようになります。
代入した要素の個数は変わっていないのに、要素数は勝手に増えた事になっていますね。
配列 @hairetu の 2 番目の要素は 猫 です。 配列 @hairetu の要素数は 6 個です。 配列 @hairetu の最後の添字番号は 5 です。
配列の要素数を調べる方法
このサンプルプログラムで使っているように、配列の要素の個数はscalar @配列名配列の最後の添字番号は
$#配列名で調べる事ができます。
なお、要素の個数から 1 を引いた値は配列の最後の添字番号に常に一致します。
scalar @配列名 マイナス 1 ←常に等しい→ $#配列名
配列に代入できる値
一つの配列には、どんな値でも好きなように代入できます。サンプルプログラムのように、文字列と数値が混合していても構いません。>次は: 配列の使いどころ