in reply to Function Prototype Context Conversion

Perhaps you don't know that what the $ prototype does is place scalar(...) around the given argument to the function.
sub foo ($$) { print "<@_>\n"; } foo(@this, %that); # foo(scalar(@this), scalar(%that));
An array evaluated in scalar context returns its size.

Jeff[japhy]Pinyan: Perl, regex, and perl hacker, who'd like a job (NYC-area)
s++=END;++y(;-P)}y js++=;shajsj<++y(p-q)}?print:??;