11章 配列を使う

さっそく配列に値を代入する方法を紹介したいと思います。

my @kyoushitu = ('田中', '中西', '木村');

こんな感じで、代入するほうを()で囲う必要があります。

配列は、タンスのイメージであるとお伝えしましたが、
このタンスは伸縮自在です。段を勝手に増やしたり、減らしたり、用意したりしてくれます。
今回は、3つの値を代入したので、3段のタンスが用意されました。


では、代入された値を取り出す方法を見てみましょう。

print "$kyoushitu[0]\n";
print "$kyoushitu[1]\n";
print "$kyoushitu[2]\n";

@kyoushituの@が$に変わっていることに注意してください。
これは、「コンテキスト」という考え方を紹介したときにすんなり理解できると思いますので、
今回は、$に変わるということを覚えておきましょう。


[数字]のところが気になると思いますが、配列というのは、0から始まる番号をもっています。
絵にするとこんな感じです。




さて、配列なのですが、「繰り返し」と呼ばれる処理と非常に相性がよいです。
配列というのは、たくさんの値をもっていますよね。その配列すべてに対して処理を行いときに「繰り返し」と呼ばれる処理を使います。
今回は、「for」というものを紹介します。英語で「for」は「〜の間」という意味です。では、なんの間なのでしょうか?
そうです、「まだ処理していない配列がある間」ということです。

実際に使い方を見てみましょう。

my @kyoushitu = ('田中', '中西', '木村');

for(@kyoushitu){
  print "$_\n";
}

これで、配列の中の値を全部、画面に表示することができました。
$_というのは、Perlにおいて色々な局面で使われるのですが、forの中ででてきたときは、
「配列の各要素それ自体」となります。

先ほどのforの中は、配列の中身のぶんだけ繰り替えされることになります。
はじめてforの中が処理される(1回目)のときは、 $_ は、'田中' になります。
2回目は、'中西', 3回目は、'木村' です。
'木村'を処理した時点で、もう処理していない配列はありませんので、forの処理が終わります。


今回は、「配列に代入する方法」と「繰り返し」について学びました。
繰り返しは、「for」以外にもたくさん、くりかえす方法がありますので、これだけで満足せずガシガシご自身で勉強なさっていただきたいと思います。(forの書き方も、これ以外にあります)
また、 $_ は、いろいろな場面で用いられることから、どういうときにどんな働きをするのかひとつずつ学んでいかなければならないのですが、使いこなせると大変便利です。
(※ただ、$_は読み辛くなるので、使うタイミングには注意が必要です..... といっても知識がないと、そのタイミングを判断できないのですが....)


次回は、「コンテキスト」というものを扱いたいと思います。