return 
return EXPR
returnThis operator causes the current subroutine, eval, or do
FILE to return immediately with the specified
value or values. Attempting to use return outside these three places raises an
exception. Note also that an eval
cannot do a return on behalf of the
subroutine that called the eval.
EXPR will be evaluated in list, scalar,
or void context, depending on how the return value will be used, which
may vary from one execution to the next. That is, the supplied
expression will be evaluated with the same context as the subroutine was
called in. If the subroutine was called in scalar context,
EXPR is also evaluated in scalar context and
so returns a single scalar value. If the subroutine was invoked in list
context, then EXPR is also evaluated in list
context and so returns a list of values. A return with no argument returns the scalar
value undef in scalar context, an
empty list () in list context, and
(naturally) nothing at all in void context. The context of the
subroutine call can be determined from within the subroutine by using
the (misnamed) wantarray
function.