in reply to Re: Returning lists vs arrays
in thread Returning lists vs arrays
Your model is perhaps flawed. At no time does Perl "return" an "array".
A more accurate model is that Perl calls a subroutine with a flag that says "I want a scalar" or "I want a list". When the last expression of the subroutine is evaluated (such as for a return operator), that subroutine gets scalar or list eval context applied to it, as appropriate.
So, a subroutine returns a list or scalar. Always. It never returns an array. If you write return @a, it will return the length of array @a in a scalar context, or a list copied from the contents of @a in a list context. At no time has it "returned" the "array" @a.
Clear now?
-- Randal L. Schwartz, Perl hacker
Be sure to read my standard disclaimer if this is a reply.
|
---|
In Section
Seekers of Perl Wisdom