1 sub tutu { 2 print "En tutu\n"; 3 } 4 5 $refsub = \&tutu;
Note que en la lınea 5 no se esta llamando a la función
&tutu
de la misma forma que cuando tomamos una referencia a
una variable escalar no evaluamos el escalar.
La cosa cambia totalmente si la asignación de la lınea 5 se
cambia por $refsub = \&tutu()
. ¿Qué ocurre en este caso?
Para crear una referencia a una subrutina anónima, simplemente, omitimos el nombre de la subrutina. He aqui un ejemplo de referencia a subrutina anónima:
$sub_ref = sub { print "Hola $_[0]!\n" };y un ejemplo de llamada:
$sub_ref->("Ana");
o bien:
&$sub_ref("Ana");
Casiano Rodríguez León