X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2FB-RecDeparse.git;a=blobdiff_plain;f=lib%2FB%2FRecDeparse.pm;h=c1e235e0399857eb7dd2e1d4e6d43cf418f7d902;hp=7244ec59e337b6174e8552216f66c8b23dd4cac1;hb=d7da895fc789a83e122c00e9b2df1e68159feeeb;hpb=c230471832c1e52b30e3c3ffd8877718e9c8905c diff --git a/lib/B/RecDeparse.pm b/lib/B/RecDeparse.pm index 7244ec5..c1e235e 100644 --- a/lib/B/RecDeparse.pm +++ b/lib/B/RecDeparse.pm @@ -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 {