syntax return
Documentation for syntax return
assembled from the following types:
language documentation Control flow
From Control flow
(Control flow) control flow return return
The sub return
will stop execution of a subroutine or method, run all relevant phasers and provide the given return value to the caller. The default return value is Nil
. If a return type constraint is provided it will be checked unless the return value is Nil
. If the type check fails the exception X::TypeCheck::Return is thrown. If it passes a control exception is raised and can be caught with CONTROL.
Any return
in a block is tied to the first Routine
in the outer lexical scope of that block, no matter how deeply nested. Please note that a return
in the root of a package will fail at runtime. A return
in a block that is evaluated lazily (e.g. inside map
) may find the outer lexical routine gone by the time the block is executed. In almost any case last
is the better alternative. Please check the functions documentation for more information on how return values are handled and produced.