return

関数を早めに抜け出す

構文

解説

return は、EXPR に与えられた値を伴って、 サブルーチン、evaldo FILEsort といったブロックや、正規表現評価ブロック (grep, map, do BLOCK ブロックは除きます) から戻ります。 EXPR の評価は、リストコンテキスト、スカラーコンテキスト、ボイドコンテキストのいずれになることもできます。 それは戻り値がどのように使われるのかによるため、コンテキストは実行ごとに変わる可能性があります (wantarray をご覧ください)。 EXPR が与えられなければ、リストコンテキストでは空のリストが、スカラーコンテキストでは未定義値が返り、 ボイドコンテキストでは当然ながら何も返りません。

(サブルーチン、evaldo FILE は、 return がなければ、自動的に最後の式評価の値を返します。)

次の例ではサブルーチン my_func'one', 'two', 'three' というリストを返しています。 そして、このサブルーチンの戻り値を 3 つの方法で受け取っています。

sub my_func {
    return 'one', 'two', 'three';
}

# スカラーコンテキスト
my $var = &my_func();    # "trhee"

# リストコンテキスト
my ($val) = &my_func();              # "one"
my ( $val1, $val2 ) = &my_func();    # "one", "two"
my @ary = &my_func();                # ("one", "two", "trhee")