goto LABEL / goto &NAME

広告

広告

解説

goto LABEL の形式は、LABEL というラベルの付いた文を探してそこへ実行を移すものです。サブルーチンや foreach ループなど何らかの初期化が必要な構造の中に入り込むことは許されていません。最適化によってなくなってしまう構造の中にも goto することはできません。これ以外は、サブルーチンの外を含む動的スコープ内のほとんどの場所へ行くために使用できますが、普通は、last や die といった別の構造を使った方が良いとされています。

goto &NAME の形式は、現在実行中のサブルーチンをNAME で指定されたサブルーチンの呼び出しで置き換えます。これはAUTOLOAD サブルーチンが別のサブルーチンをロードしてその別のサブルーチンが最初に呼ばれたようにするために使われます。ただし現在のサブルーチンで @_ を修正した場合には、そのその別のサブルーチンに伝えられます。goto のあとはcaller() でさえも現在のサブルーチンが最初に呼び出されたと判別できません。

参照

広告

Copyright (C) 2003-2006 七鍵 key@do.ai 初版:2003年07月07日 最終更新:2006年08月08日