return EXPR

Returns from a subroutine, eval, do FILE, sort block or regex eval block (but not a grep, map, or do BLOCK block) with the value given in EXPR. Evaluation of EXPR may be in list, scalar, or void context, depending on how the return value will be used, and the context may vary from one execution to the next (see wantarray). If no EXPR is given, returns an empty list in list context, the undefined value in scalar context, and (of course) nothing at all in void context.

サブルーチン, eval, do FILE, sort ブロックまたは正規表現 eval ブロック (但し grep, map, do BLOCK ブロックではない) から EXPR で与えられた値をもって、リターンします。 EXPR の評価は、返り値がどのように使われるかによってリスト、スカラ、 無効コンテキストになります; またコンテキストは実行毎に変わります (wantarray を参照してください)。 EXPR が指定されなかった場合は、リストコンテキストでは空リストを、 スカラコンテキストでは未定義値を返します; そして(もちろん) 無効コンテキストでは何も返しません。

(In the absence of an explicit return, a subroutine, eval, or do FILE automatically returns the value of the last expression evaluated.)

(サブルーチン, eval, do FILE に明示的に return がなければ、最後に評価された値で、 自動的にリターンします。)

Unlike most named operators, this is also exempt from the looks-like-a-function rule, so return ("foo")."bar" will cause "bar" to be part of the argument to return.

ほとんどの名前付き演算子と異なり、関数のように見えるものの規則からも 免れるので、return ("foo")."bar" とすると "bar"return への引数の一部となります。