[perl]繰り返し処理のラベル


繰り返し処理にラベルを付けられる

備忘録として

以下の様にforがネストしているときに、強制的にラベルの付いたfor文を抜けるときに利用する。
サンプルで「LABEL」という名前にしているが何でもいい。
「TEST:」で「last TEST;」としても同じです。

LABEL: for my $i (@array1) {
    for my $j (@array2) {
        if ($flag) {
            last LABEL;
        }
        print "test¥n";
    }
}

last 以外にはnext,redoにも使えるらしい。。

next LABEL;
redo LABEL;

http://www.perlplus.jp/perl/for/index10.html

**ただ。。2重のネストされたfor文はなくせることが最優先!!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です