Perlの反復・ループの構文には、条件が「真である間」ループするdo...while文と条件が「真になるまで」ループするdo...until文(何れもdoは省略可能)の他、for、foreachがあります。
do文を入れる場合は、while/until文の条件の真偽に関わらず、その前に必ず1度実行される為、初期値設定などに利用することができます。
while文は、条件が「一致している間」(条件が真の間)ループします。
$i=0;
while ( $i < 5 ) {
print "$i:Hello World!\n";
$i++;
}
このwhileループの例では$iが「5より小さい間」、$iの値(0~4)とコロン[:]に続けてHello World!と出力されます。
尚、Perlではこの場合、[ $i++; ]は、[ $i=$i+1; ]、[ $i+=1; ]としても同じです。
until文は、条件が「一致するまで」(条件が偽の間・真になるまで)ループします。
$i=7;
until ( $i < 5 ) {
print "$i:Hello World!\n";
$i--;
}
このuntilループの例では$iが「5より小さくなるまで」、$iの値(7~5)とコロン[:]に続けてHello World!と出力されます。
尚、Perlではこの場合、[ $i--; ]は、[ $i=$i-1; ]、[ $i-=1; ]としても同じです。
while文、until文では、うっかりすると指定条件を間違えて、終わりのない、いわゆる無限ループに陥りますので注意が必要です。
コマンドライン上で行っている場合には、ほとんどの場合[Ctrl]+[c]や[Ctrl]+[z]で終了や停止できますが、CGIスクリプトを実行した結果ブラウザ上で起きて、さぁ大変。。。なんてことにならないよう利用する際には、十分に留意する必要があります。