Perl日記

日々の知ったことのメモなどです。Perlは最近やってないです。

普通の文にラベル

ループにラベルを張るつもりが間違って次のようにしてしまった。

LOOP :
my $i = 1;
for my $num (1 .. 10) {
  EXPR;
}

ループではなく通常の文にラベルを張ってしまった。
あれ、これって動かないんじゃねーの?、と考えたのだけれど、しかし、僕の予想に反して、これはちゃんと動く。
use strict; use warnings; していても同じ。
おお、こんなことってできるんだー、と数秒、どういう使い方ができるかと考えていた。
が、これって普通にgoto()で使うためによくあるなーと想い出す。
いや、goto()なんて今まで使ったことがないけれど。




まあついでに調べておいておく。
goto - perldoc.perl.orggoto - perlsyn404 Blog Not Found:perl - parser書くならgoto



goto LABEL;
goto $code_ref;
goto \&subroutine;

こういう使い方。
そういえばAUTOLOADの入門ではよく出てたな。忘れてたのは反省。