@
値のリスト
例: @coco = ("dog", "shih tzu", "Coco");

配列。単数形の変数をスカラー(scalar)、複数形の変数を配列(array)と呼ぶ。配列は @ を、スカラーは $ を先頭に付け現す。
複数形の変数には、他に文字列でキーを指定するハッシュ(%)がある。

配列はスカラーを順番に並べたもの(リスト)。

数値を使って探し出すときには配列を使い、文字をもとに探すときにはハッシュを使う。


スカラーの $scalar の先頭の文字から、
配列の @arrayの先頭の文字から連想されている。


リスト値を配列に代入するには ( ) で囲えばよい。


@coco = ("dog", "shih tzu", "Coco");のとき、

print @coco;とするとdog shih tzu Cocoとなる。


各要素は

$coco[0] = "dog";
$coco[1] = "shih tzu";
$coco[2] = "Coco";
の集まりとなっている。[ ]内の添え字は 0 から始まることに注意。

マイナスの添え字を使って配列を最後の要素から表現することもできる。
$coco[0]$coco[1]$coco[2]
@cocodogshih tzuCoco
$coco[-3]$coco[-2]$coco[-1]


このように、配列からスカラー変数に代入することもできる。

($inu, $kensyu, $namae) = @coco;

この結果、$inuには dog、$kensyuに shih tzu、$namaeに Cocoがリスト代入される。


@coco = ("dog", "shih tzu", "Coco");のとき、この配列の最後に要素を加えるには push という関数を使う。

push(@coco, "tsuika");dog shih tzu Coco tsuikaとなる。配列の最後に、$coco[3] として、文字列の tsuika が加わった。


逆に配列の先頭に要素を加えるには unshift関数を使用する。

unshift(@coco, "tsuika");tsuika dog shih tzu Cocoとなる。配列の先頭に、$coco[0] として、文字列の tsuika が加わった。今までの配列は$coco[0]〜$coco[2]であったが、unshiftで先頭に要素($coco[0])が加わったため、$coco[1]〜$coco[3]にシフトしている。


配列の最後の要素を取り出すには pop関数を用いる。

同じく@coco = ("dog", "shih tzu", "Coco");のとき

$matsubi = pop(@coco);とすると、

print $matsubi;で $matsubiはCocoとなる。


pop とは逆に、最初の要素を取り出すには shift関数を使う。

$saisyo = shift(@coco);で、

$saisyoはdogになる。


配列を扱う関数は他に、配列の途中から要素を抜き出したり挿入したりする splice関数と、配列の内容を正順に並び替える sort関数と、逆順に並び替える reverse関数もある。
(参考)$(スカラー)

Back

[PR]I^:餅t{i^