関数:繰り返し条件を評価しないで繰り返す
redo文を使うと、繰り返し条件を評価しないで繰り返しを再度実行することができます。continueブロックがあっても、実行しません。
redo ラベル
ラベルは、繰り返しのラベルを指定します。省略した場合は、一番内側の繰り返しを仮定します。
プログラム 例
#!/usr/bin/perl
# cntの値を制御
for ($cnt = 1; $cnt <= 5; ++$cnt) {
print "カウンタの値は$cntです\n";
print "カウントアップしますか(Y/N)--> ";
$ans = <>;
chomp($ans);
if ($ans eq "N" || $ans eq "n") {
redo;
}
}
print "終了します\n";
例の実行結果
$ perl redo.pl カウンタの値は1です カウントアップしますか(Y/N)--> Y カウンタの値は2です カウントアップしますか(Y/N)--> y カウンタの値は3です カウントアップしますか(Y/N)--> N カウンタの値は3です カウントアップしますか(Y/N)--> n カウンタの値は3です カウントアップしますか(Y/N)--> y カウンタの値は4です カウントアップしますか(Y/N)--> n カウンタの値は4です カウントアップしますか(Y/N)--> n カウンタの値は4です カウントアップしますか(Y/N)--> y カウンタの値は5です カウントアップしますか(Y/N)--> n カウンタの値は5です カウントアップしますか(Y/N)--> y 終了します $

