In list context, every sub returns a list. In scalar context, every sub returns a scalar.
That's because
return "knows" the context the sub is in.
With
@tmp = func(),
func() will always return a list. It could be a list with just one item, but it's still a list.
Note: a sub never returns an array (it could return a list with a reference to an array in it, though)
Think about rewriting
someonesFunc to return a
reference, or to use
wantarray.
2;0 juerd@ouranos:~$ perl -e'undef christmas'
Segmentation fault
2;139 juerd@ouranos:~$