in reply to Re: underscore prototype imposing scalar context
in thread underscore prototype imposing scalar context

No, that doesn't work. The unbackslashed @ eats up all the prototype characters behind it.

This:

#!/ActivePerl/bin/perl use 5.014; use warnings; sub sayit (@;_); sayit (1, 2, 3); my @list = (4, 5, 6); sayit (@list); local $_ = 7; sayit; my $_ = 8; sayit; sub sayit (@;_) { my @list = @_; if (@list) { say "@list" } else { say "no list" } }

yields this:

Prototype after '@' for main::sayit : @;_ at q.pl line 6. Prototype after '@' for main::sayit : @;_ at q.pl line 21. 1 2 3 4 5 6 no list no list

The first two lines are due to the warnings pragma.