next up previous contents index practicapracticaPP2moodleLHPmoodlepserratacpanmodulospauseperlgoogleetsiiullpcgull
Sig: Funciones de orden superior Sup: Referencias Ant: Práctica: Referenciado Simbólico Err: Si hallas una errata ...

Referencias a subrutinas anónimas

Vimos antes que es posible mediante una referencia apuntar a una función ya existente:
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");


next up previous contents index practicapracticaPP2moodleLHPmoodlepserratacpanmodulospauseperlgoogleetsiiullpcgull
Sig: Funciones de orden superior Sup: Referencias Ant: Práctica: Referenciado Simbólico Err: Si hallas una errata ...
Casiano Rodríguez León
2006-02-21