Well there is the obvious place to start (perldoc -f wantarray):
wantarray
Returns true if the context of the currently
executing subroutine is looking for a list value.
Returns false if the context is looking for a
scalar. Returns the undefined value if the context
is looking for no value (void context).
return unless defined wantarray; # don't bother doing more
my @a = complex_calculation();
return wantarray ? @a : "@a";
This function should have been named wantlist()
instead.
So then the simple answer is, so you can tell when the user is calling a function/sub
wanting a list returned, a scalar returned, or nothing (void).
For example you create an object that has an underlying structure similar to an array,
then you write one method to do a couple of different things based on how it is
called, for instance if the method is called in scalar context you can return the
number of items in the list, if it is called in list context you return a list of
references to each of those items in the list.
The place I have used it is in (a previously poorly written so I had to) a
configuration file reader, where a person could call the function with a list of
options they wanted and the values associated with that list were returned. I wanted
to update the function so it could just return a hash of all the values, or the values
specified with their associated keys, but I couldn't break old code. So I used
wantarray to tell if I was called in scalar context, if so I passed back a reference
to my hash, but in list context I did what it had always done, that is passed back a
list of the items they wanted. The real question is, knowing the basics how can you
use it? .......
http://danconia.org
------------------------------------------------
On Tue, 26 Nov 2002 15:35:01 +0100, "Mystik Gotan" <[EMAIL PROTECTED]> wrote:
> I can't really figure out what the purpose of wantarray() is.
> Can someone please give me a good, decent explanation?
>
> Thanks in advance :-)
>
>
> --------------
> Bob Erinkveld (Webmaster Insane Hosts)
> www.insane-hosts.net
> MSN: [EMAIL PROTECTED]
>
>
>
>
> _________________________________________________________________
> MSN Zoeken, voor duidelijke zoekresultaten!
> http://search.msn.nl/worldwide.asp
>
>
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]