|
CGI 作成の初歩 |
|
9. 配列の操作を行ってみる |
ループを練習 の項で説明していなかった foreach について説明します。
foreach は配列に対して繰り返し処理を行うものです。
ここでは配列の要素を foreach で繰り返し、それぞれの要素の文字列に さん
を
付ける処理を行ってみます。
foreach $変数 (@配列)
{
処理;
} |
1要素 配列を読み込んだら、変数に代入します。
処理に指定したものを実行した後、配列の次の要素を
読み込み、実行・・・・ を繰り返します。
配列の要素数だけこの処理を行い、終了します。 |
foreach $aaa (@hairetu)
{
print $aaa;
} |
左の例では次のような処理です。
@hairetu の要素を一つずつ読んで 変数 $aaa に入れます。
それを print $aaa; で表示します。
配列の次の要素を読み込み、同じように表示します。
@hairetu の要素が無くなるまで続けます。 |
foreach で代入する変数を省略する事もでき、この場合省略時の変数 $_ に値が代入されます。
代入された変数を使う時は $_ とすると使う事ができます。
例えば例の print の場合 print $_; といった感じです。
|
配列の要素を追加したり、削除したりする |
配列の要素を追加したり削除したりを配列の前後から行う事ができます。
push |
配列の末尾に要素を追加する際に使用します。
例 push (配列名,追加要素);
例 push (@aaa,$tmp); |
pop |
配列の末尾から要素を取り出す際に使用します。
取り出された配列の末尾の要素は削除されます。
例 取出し要素の代入先 = pop (配列名);
例 $tmp = pop (@aaa); |
shift |
配列の先頭の要素を取り出す際に使用します。
取り出された配列の先頭の要素は削除されます。
先頭にあった要素を取り出して削除する為、取り出した要素の
次の要素の添字が 0 になります。
例 取出し要素の代入先 = shift (配列名);
例 $tmp = shift (@aaa); |
unshift |
配列の先頭に要素を追加する際に使用します。
先頭に要素を追加する為、追加した要素の添字は 0 となり、
元々あった要素の添字は 1 という感じでずれます。
例 unshift (配列名,追加要素);
例 unshift (@aaa,$tmp); |
下の例では先頭にあった要素を末尾に移動させたのち、画面表示を行います。
$tmp = shift (@aaa); により先頭から要素を取り出し、変数 $tmp に入れています。
push (@aaa,$tmp); で先ほど取り出した要素を配列 @aaa の末尾に追加しています。
配列をスカラー変数に代入すると、配列の個数が代入先の変数に格納されます。
例えば上記例の 配列 @aaa には 田中さん 山田さん 竹内さん の3つの要素が
入っていますので、その個数が確認できるかを見てみます。
|
配列の連結を行う |
配列中の要素を区切り文字を付けて連結させたり、配列同士の連結が行えます。
下の例では配列 @aaa の中の要素を / で区切ってから表示しています。
これは連結なので、区切った後は1つの要素となります。
上の連結後の値を配列に挿入 @bbb = join ("/",@aaa); とした場合、配列 @bbb の先頭に
代入される事になります。 例 $bbb[0]
連結後は配列でなく単一の要素となりますので注意しましょう。
|
複数の配列や変数を連結する |
連結は1つの配列内だけでなく、複数の配列や変数をまとめて結合することができます。
例えば下の例では 2つの配列と1つの変数をまとめて連結しています。
複数指定する場合は カンマ(,) で区切って指定します。
実行結果 |
田中さん/山田さん/竹内さん/鈴木さん/前田さん/松浦さん/を連結しました。 |
|
次項では文字列の検索の概要を説明しています。 |
|
|
|
|