- last LABEL
- last EXPR
- last
-
The last command is like the
break
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
. The continue 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 as
eval {}
,sub {}
, ordo {}
. It will perform its flow control behavior, which precludes any return value. It should not be used to exit a grep or map 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 to last.ほとんどの名前付き演算子と異なり、これは代入と同じ優先順位を持ちます。 また、関数のように見えるものの規則からも免れるので、
last ("foo")."bar"
と すると "bar" は last への引数の一部となります。