[Programación]callback en perl?

Angel Arancibia angel.arancibia en gmail.com
Mie Dic 30 11:20:56 ARST 2009


El día 30 de diciembre de 2009 01:07, Nicolás Aimetti
<naimetti en yahoo.com.ar> escribió:
> Hola,
>
> Tenés dos opciones:
>
> usar un closure:
>
> #función que invoca el callback
> sub f {
>   my ($puntero_a_funcion) = @_;
>   $puntero_a_funcion->();
> }
>
> #Lu`ego la invocas:
> f ( sub {   print "Esta es una función anónima o closure\n" }  );
>
> #La otra opción es un puntero a una función
>
> sub g {
>   print "soy g\n";
> }
>
> #así se pasa el puntero
> f( \&g );


Gracias nicolas, lo resolvi con la segunda forma, el puntero a
funcion. Ahora me surge una duda, lo implemente de la siguiente forma
(fue un rato antes de ver tu respuesta):

###########
require "./detect.pl";
use strict;

sub f{
	print "soy f";
}

my $foo=detection_linux->new();
$foo->init_detectar(&f);
$foo->detect_test;
###########

En tu respuesta figura un "\" antes del &. cual es la razon para eso?

Saludos, y muchas gracias por tu tiempo.

Angel


Más información sobre la lista de distribución Programacion