- 配列 -
♣変数
◆配列を表すのは @
@menber = ("座間","山田","松岡","福島","長岡");
print "メンバー全員:",@menber,"\n";
<<結果>>
メンバー全員:座間山田松岡福島長岡
-------------------------------------------------------
print "メンバー全員:@menber\n"; #"",""で区切らず1行で記述すると
<<結果>>
メンバー全員:座間 山田 松岡 福島 長岡 #スペースが開く
「スカラー値」が何個か合さったものが「配列」になる。配列は@で表す。
だから取り出す時は、@から$のスカラー値になる。
print "1人目は $member[0]\n";
♣配列の利用
◆配列の要素数
配列の前に「$#」を付けると、要素の添え字の最大値を求める事が出来る。
@a = ("太郎","次郎","三郎","四郎");
$b = $#a;
print $b;
-------------------------------------------------------
<<結果>>
3 #要素が全くない場合には、-1を返す。
配列にいくつ文字が入っているか分からない時に便利!!
♣連想配列
連想配列は % で始まる。キーとバリューの組み合わせの配列を連想配列と言う。
%fruite = ("赤","りんご",
"紫","ぶどう",
"黄","ばなな",
"緑","キウイ");
print "フルーツ全部:" , %fruite , "\n";
print "フルーツ全部:%fruite \n";
print "赤のフルーツは? $fruite{'赤'} \n";
-------------------------------------------------------
<<結果>>
フルーツ全部:緑キウイ紫ぶどう赤りんご黄ばなな
#キーとバリューはセットだけど、記述した順番が違って表示される
フルーツ全部:$fruite
赤のフルーツは? りんご
#だから、キーに対応するバリューを探して $fruite{'赤'} 表示させる
配列の時の添え字は[0]数字になる。何番目を参照する為。
連想配列の時は{'赤'}シングルクウォートでくくる。
キーとバリューはセットでなくてはならないので、以下のように =>と表示させる事も出来る。
%fruite = ("赤"=>"りんご","紫"=>"ぶどう","黄"=>"ばなな","緑"=>"キウイ");
print %fruite,"\n";
print $fruite{'黄'}; #全部取り出す時は % 個別に取り出す時は $
-------------------------------------------------------
<<結果>>
緑キウイ紫"ぶどう赤りんご黄ばなな
ばなな
◆連想配列の書き換え
♣連想配列に関する関数
◆すべてのキーを取得keys関数
%fruite = ("赤"=>"りんご","紫"=>"ぶどう","黄"=>"ばなな","緑"=>"キウイ");
@a = keys %fruite;
print @a;
-------------------------------------
<<結果>>
緑紫赤黄
◆すべての値を取得values関数
%fruite = ("赤"=>"りんご","紫"=>"ぶどう","黄"=>"ばなな","緑"=>"キウイ");
@a = values %fruite;
print @a;
-------------------------------------
<<結果>>
キウイぶどうりんごばなな
◆キーと値、両方の取得each関数
%fruite = ("赤"=>"りんご","紫"=>"ぶどう","黄"=>"ばなな","緑"=>"キウイ");
while(($key, $val) = each %fruite){
print $key, "-";
print $val, "\n";
}
-------------------------------------
<<結果>>
緑-キウイ
紫-ぶどう
赤-りんご
黄-ばなな
※何が収まっているか分からない連想配列がある時、each関数を使って、キーと値に分けた一覧を見る事が出来る