diff options
author | Father Chrysostomos <sprout@cpan.org> | 2011-12-07 12:41:56 -0800 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2011-12-08 06:18:08 -0800 |
commit | 94bb57f91b6d1f334c87639d4c49de66eeddb3a7 (patch) | |
tree | 2cd1c3a6ba2719228eac41554c2c5d3ec5e89814 /dist | |
parent | af6a5d0ea1e02579009f9da9fc6444bbb2eb691d (diff) | |
download | perl-94bb57f91b6d1f334c87639d4c49de66eeddb3a7.tar.gz |
[perl #47361] Deparse do +{} and do({}) correctly
These are both variants of do-file syntax.
Diffstat (limited to 'dist')
-rw-r--r-- | dist/B-Deparse/Deparse.pm | 6 | ||||
-rw-r--r-- | dist/B-Deparse/t/deparse.t | 7 |
2 files changed, 12 insertions, 1 deletions
diff --git a/dist/B-Deparse/Deparse.pm b/dist/B-Deparse/Deparse.pm index 8aecf88dd4..8bf5756a72 100644 --- a/dist/B-Deparse/Deparse.pm +++ b/dist/B-Deparse/Deparse.pm @@ -1762,7 +1762,11 @@ sub pp_gmtime { unop(@_, "gmtime") } sub pp_alarm { unop(@_, "alarm") } sub pp_sleep { maybe_targmy(@_, \&unop, "sleep") } -sub pp_dofile { unop(@_, "do") } +sub pp_dofile { + my $code = unop(@_, "do"); + if ($code =~ s/^do \{/do({/) { $code .= ')' } + $code; +} sub pp_entereval { unop( @_, diff --git a/dist/B-Deparse/t/deparse.t b/dist/B-Deparse/t/deparse.t index a81c86e391..492c69150c 100644 --- a/dist/B-Deparse/t/deparse.t +++ b/dist/B-Deparse/t/deparse.t @@ -828,3 +828,10 @@ BEGIN { $^H{'a'} = 'b'; } print $_; } print $_; +#### +# [perl #47361] do({}) and do +{} (variants of do-file) +do({}); +do +{}; +>>>> +do({}); +do({}); |