I didn't know that about the changes to qw//.
I've had some rude surprises when I've written subs that were intended to return lists. That's why I always use an intermediate variable or an explicit wantarray call in when I write a sub that will normally return a list. Things like return 7..5 can have surprising effects in scalar context.
Most of the time, a sub that returns a list should act like an array in scalar context, assigning to an intermediate array is a simple way to get context aware results. When other behavior is desired, I prefer to explicitly construct the result set using wantarray.
sub seven_in_scalar_context { my @r = 3..9; return @r; } sub nine_in_scalar_context { my @r = 3..9; return wantarray ? @r : $r[-1]; }
Array behavior in scalar context is pretty well known, so I feel good about using it implicitly. I've seen too many questions about other kinds of contextual returns (especially the regarding the comma) to feel good about using them implicitly. So I use wantarray everywhere else.
TGI says moo
In reply to Re^5: most appropriate return data type
by TGI
in thread most appropriate return data type
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |