Does that mean the context where the wantarray is, or where the function call is?
Where the function call is.
If it's where the function is called as a hash value
blah() is not called "as a hash value". It is called while building a list (which eventually will be assigned to a hash.) For example:
%hash = (a => 'b', 'c', d => split(//, 'ef'));results in
$hash{'a'} = 'b' $hash{'c'} = 'd' $hash{'e'} = 'f'
It's useful to think of the () as an operator creating an anonymous list.
couldn't you're example just as easily be (1, $a), instead of (1, @a)?
Yes, a scalar can be be provided when an a list is expected. However, I used @a because an array behaves differently in scalar and list contexts. (It returns the number of elements in the former, and the list of elements in the latter.)
In reply to Re^3: wantarray - surprise behaviour
by ikegami
in thread wantarray - surprise behaviour
by shemp
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |