- last LABEL
- last EXPR
- last
-
The
last
command is like thebreak
statement in C (as used in loops); it immediately exits the loop in question. If the LABEL is omitted, the command refers to the innermost enclosing loop. Thelast EXPR
form, available starting in Perl 5.18.0, allows a label name to be computed at run time, and is otherwise identical tolast LABEL
. Thecontinue
block, if any, is not executed:last
コマンドは、(ループ内で使った) C のbreak
文と 同じようなもので、LABEL で指定されるループを即座に抜けます。 LABEL が省略されると、コマンドは一番内側のループを参照します。 Perl 5.18.0 から利用可能なlast EXPR
形式では、実行時に計算される ラベル名を使えます; それ以外はlast LABEL
と同一です。continue
ブロックがあっても実行されません:LINE: while (<STDIN>) { last LINE if /^$/; # exit when done with header #... }
last
cannot return a value from a block that typically returns a value, such aseval {}
,sub {}
, ordo {}
. It will perform its flow control behavior, which precludes any return value. It should not be used to exit agrep
ormap
operation.last
はeval {}
,sub {}
,do {}
といった 典型的には値を返すブロックから値を返せません。 これは、返り値を不可能にするフロー制御の振る舞いを実行します。grep
やmap
操作を終了するのに 使うべきではありません。Note that a block by itself is semantically identical to a loop that executes once. Thus
last
can be used to effect an early exit out of such a block.ブロック自身は一回だけ実行されるループと文法的に同一であることに 注意してください。 従って、
last
でそのようなブロックを途中で 抜け出すことができます。last
,next
,redo
が どのように働くかについてはcontinue
も参照してください。Unlike most named operators, this has the same precedence as assignment. It is also exempt from the looks-like-a-function rule, so
last ("foo")."bar"
will cause "bar" to be part of the argument tolast
.ほとんどの名前付き演算子と異なり、これは代入と同じ優先順位を持ちます。 また、関数のように見えるものの規則からも免れるので、
last ("foo")."bar"
と すると "bar" はlast
への引数の一部となります。