in reply to Forcing list context of passed parameters

... Instead, I get "4".

Not that it matters much in the overall picture of things... :)  but I do get "four" in $first, not "4" — as in

my $first = qw( one two three four ); # "four"

as opposed to

my $first = @{[qw( one two three four )]}; # 4

Apart from that, I'd just ditch the prototypes, or put them in a comment if you really want them for documentation purposes...