Un prototipo como \$ le indica a Perl que en la llamada se debe especificar
una variable escalar la cuál será convertida en la rutina en una
referencia a la variable. Véase la sesión que sigue:
lhp@nereida:~/Lperl/src$ perl -wde 0
main::(-e:1): 0
DB<1> sub r(\$) { print "@_\n" }
DB<2> r qw{a b c}
Type of arg 1 to main::r must be scalar (not list) at (eval 6)
DB<3> r "hola"
Type of arg 1 to main::r must be scalar (not constant item) at (eval 7)
DB<4> $x = 4
DB<5> r $x
SCALAR(0x842f57c)
DB<6> r \$x
Type of arg 1 to main::r must be scalar (not single ref constructor) at (eval 10)
DB<7> r $x, qw{a b c}
Too many arguments for main::r at (eval 11)
DB<8> r $x, 1..3
Too many arguments for main::r at (eval 12)
Cualquier prototipo backslash (\) representa a un argumento
que debe comenzar con ese carácter. De ahí las protestas del intérprete
en las líneas 2, 3 y 6.
Casiano Rodríguez León
