On 8/3/05, John W. Krahn <[EMAIL PROTECTED]> wrote: > marcos rebelo wrote: > > I need to redefine localy one subroutine and have it correctlly after. > > How do I do it? > > $ perl -e' > my $myPrint = sub { print "Teste 1\n" }; > > sub test { $myPrint = sub { print "Teste 2\n" } } > > $myPrint->(); > test; > $myPrint->(); > exit; > ' > Teste 1 > Teste 2
If you combine this solution with local variables, you can do exactly what you need: #!/usr/bin/perl use strict; use warnings; our $print = sub { print "test 1\n" }; sub test { $print = sub { print "test 2\n" } } $print->(); { local $print = $print; $print->(); test(); $print->(); } $print->(); -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>