in reply to Anonymous Subroutines
But the most usefult thing of anonymous sub is closure:
Output:sub foo { my ( $arg ) = @_ ; my $bar = sub { print "ARG[$arg]\n" ; return "RE[$arg]" ; } ; return $bar ; } my $bar1 = foo(123) ; my $bar2 = foo(456) ; my $foo1 = &$bar1() ; my $foo2 = &$bar2() ; print "foo1: $foo1\n" ; print "foo2: $foo2\n" ;
Also is useful to create functions with eval:ARG[123] ARG[456] foo1: RE[123] foo2: RE[456]
You also can redefine a normal sub with the declaration of a anonymous sub:my $e = 10 ; my $sub = eval(" sub { return 2**$e } ") ;
See perlref and perlsubsub foo { print "foo\n" ;} # now redefining it: *foo = sub { print "bar\n" ;}
Graciliano M. P.
"Creativity is the expression of the liberty".
|
|---|