last演算子
繰り返し処理が行われている時に強制的に繰り返し処理を終了させることが出来ます。「last」演算子を使います。書式は次の通りです。
last;
繰り返し処理の中で「last」演算子が実行されるとその時点で繰り返し処理は終了となります。なお終了する繰り返し処理は、「last」演算子が記述されている箇所を含む一番内側の繰り返し処理が対象です。
my $count = 1; while (1){ print "$count¥n"; $count++; if ($count > 5){ last; } } print "終了¥n";
上記の例ではwhile文の条件部分が「1」となっており、このwhile文は無限ループとなります。ただ、繰り返し処理の中でif文を使って条件判断を行い、ある条件となったら「last」演算子を実行してwhile文を終了するようにしてあります。
なおlast演算子によって終了となる繰り返し処理というのは、while文、until文、for文、foreach文の他に裸のブロックが対象となります。if文などは対象外ですので、上記のサンプルでlast演算子が実行された時に終了するのはif文ではなくwhile文となります。
サンプルプログラム
では簡単なプログラムで確認して見ます。
use strict; use warnings; use utf8; binmode STDIN, ':encoding(cp932)'; binmode STDOUT, ':encoding(cp932)'; binmode STDERR, ':encoding(cp932)'; my $count = 1; while (1){ print "$count¥n"; $count++; if ($count > 5){ last; } } print "終了¥n";
上記を「test7-1.pl」の名前で保存します(文字コードはUTF-8です)。そしてコマンドプロンプトを起動し、プログラムを保存したディレクトリに移動してから次のように実行して下さい。
( Written by Tatsuo Ikura )