control flow return
Documentation for control flow return
assembled from the following types:
language documentation Control Flow
From Control Flow
(Control Flow) control flow 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.