***HPクリエイターのためのCGI講座 第15回***
3.7 配列演算子

配列データの操作用として、専用の演算子がいくつか用意されています。
各々について、解説します。

<配列スライス>
配列要素をアクセスする特殊な方法です。
@num=(10,20,30,40,50);
print @num[1,2];
2030を出力する
@num[1,2] = @num[2,1];
入れ替え、@num は(10,30,20,40,50)に変わっている


<push,pop演算子>
配列最後部へデータを設定したり取り出したりします。
取り出した後の要素は削除されます。
@num=(10,20,30);
push(@num,40);
@num は (10,20,30,40)になる
push(@num,-5,-10);
@num は (10,20,30,40,-5,-10)になる
$dat=pop(@num);
$datには-10が設定され @num は (10,20,30,40,-5)になる


<shift,unshift演算子>
配列先端部へデータを設定したり取り出したりします。
取り出した後の要素は削除されます。
@num=(10,20,30);
unshift(@num,40);
@num は (40,10,20,30)になる
$dat=shift(@num);
$datには40が設定され @num は (10,20,30)になる


<reverse>
配列の逆順を返します。
@num=(10,20,30);
@rev=reverse(@num);
@rev は (30,20,10)になる @numは変化しない
@num=reverse(@num);
こうすれば@num が (30,20,10)になる


<sort>
配列をASCIIコードの昇順で入れ替え(ソート)を行います。
@str=("ABC","abc","123");
@str=sort(@str);
@str は ("123","ABC","abc")になる

気を付けなければならないのは、数値もASCIIコードとしてソートします。
@num=(4,20,300,1000);
@num=sort(@num);
@num は (1000,20,300,4)になる


<chomp>
文字列の最後から、改行文字を取り除きます。
@str=("ABC\n","abc\n","123\n");
chomp(@str);
@str は ("ABC","abc","123")になる


演習プログラムの虫食いのところを、色々変えて確認してみてください。


********************************************************************************
講師:ALK alk@arkland.co.jp
運営:アークランド(株) http://www.arkland.co.jp