Documentation for syntax
return assembled from the following types:
From Control flow
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.
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.