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>