X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FB%2FRecDeparse.pm;h=1a2b4b4857bae51918e89ea564390d9ef0e30987;hb=13205c2b2fd1a97d43fa6683e27ba36819bfedc1;hp=7244ec59e337b6174e8552216f66c8b23dd4cac1;hpb=c230471832c1e52b30e3c3ffd8877718e9c8905c;p=perl%2Fmodules%2FB-RecDeparse.git diff --git a/lib/B/RecDeparse.pm b/lib/B/RecDeparse.pm index 7244ec5..1a2b4b4 100644 --- a/lib/B/RecDeparse.pm +++ b/lib/B/RecDeparse.pm @@ -16,11 +16,11 @@ B::RecDeparse - Deparse recursively into subroutines. =head1 VERSION -Version 0.02 +Version 0.03 =cut -our $VERSION = '0.02'; +our $VERSION = '0.03'; =head1 SYNOPSIS @@ -122,19 +122,20 @@ if (FOOL_SINGLE_DELIM) { sub pp_entersub { my $self = shift; - $self->{brd_sub} = 1; - my $body = $self->SUPER::pp_entersub(@_); - $self->{brd_sub} = 0; + my $body = do { + local $self->{brd_sub} = 1; + $self->SUPER::pp_entersub(@_); + }; $body =~ s/^&\s*(\w)/$1/ if $self->_recurse; return $body; } sub pp_refgen { my $self = shift; - $self->{brd_sub} = 0; - my $body = $self->SUPER::pp_refgen(@_); - $self->{brd_sub} = 1; - return $body; + return do { + local $self->{brd_sub} = 0; + $self->SUPER::pp_refgen(@_); + } } sub pp_gv { @@ -144,9 +145,10 @@ sub pp_gv { $body = $self->SUPER::pp_gv(@_); } else { my $gv = $self->gv_or_padgv($_[0]); - ++$self->{brd_cur}; - $body = 'sub ' . $self->indent($self->deparse_sub($gv->CV)); - --$self->{brd_cur}; + $body = do { + local @{$self}{qw/brd_sub brd_cur/} = (0, $self->{brd_cur} + 1); + 'sub ' . $self->indent($self->deparse_sub($gv->CV)); + }; if (FOOL_SINGLE_DELIM) { $body = $key . $body; } else {