Perl for 繰り返し スクリプトの書き方
バイオインフォ道場、くまぞうです。
for文を使うと、コードブロックを指定回数だけ実行することができます。
for文による繰り返し処理
for文の書き方1
繰り返し処理の対象となる配列やハッシュなどのオブジェクトを指定します。必要に応じて、繰り返しで用いる参照用の変数を準備します。
for文
for (collection) { 繰り返す処理(各要素の取り出しは、$_); ... end
for文の書き方2
別の書き方もあります。この場合、繰り返し用の変数を準備し、初期値をセットします。次に、繰り返し条件と反復の具合を決めます。例えば、10回繰り返したい場合は、初期値0・繰り返し条件10より小さい・反復を1ずつ増やす、と指定します。また、変数の評価は増加でも減少でもよく、10からはじめて1つずつ減少するようにしても同じことができます。また、繰り返しで用いる変数は、繰り返し処理の中で利用することができます。
for文
for (初期値; 繰り返し条件; 反復) { 繰り返す処理; ... }
繰り返し処理について
オブジェクト内の要素に対して処理を繰り返します。また、lastやnextを使うことで、繰り返し処理を抜けたり・途中で折り返したりなどの制御を行うことができます。
プログラム
test_for.pl
#! /usr/bin/perl my @array = ("AAA", "BBB", "CCC"); for (@array) { print "Hello! ", $_, "\n"; }
test_for2.pl
#! /usr/bin/perl my @array = ("AAA", "BBB", "CCC"); for (my $i=0; $i<=$#array; $i++) { # 繰り返し条件では、$i<int(@array); も可。 print "Hello! ", $array[$i], "-", $i+1,"\n"; }
スクリプト実行
$ perl test_for.pl Hello! AAA Hello! BBB Hello! CCC
$ perl test_for2.pl Hello! AAA-1 Hello! BBB-2 Hello! CCC-3
プログラムについて
test_for.plでは、for文による繰り返し処理を試しました。配列内の要素1つ1つに対して「Hello!」を表示します。test_for2.plでは、同様に配列内の要素1つ1つに対して「Hello!」を表示します。繰り返し用のindex変数を使って、明示的に要素1つ1つを取り出して表示しています。