diff options
author | Robin Houston <robin@cpan.org> | 2001-04-20 01:18:53 +0100 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2001-04-19 22:36:51 +0000 |
commit | 7e40138b6937a53e2027c48d19bbbdf80c8a2f14 (patch) | |
tree | e7f254158b3b0c2cb91218806b1beca9992bb21f /ext | |
parent | c38fcba2cef4fd93dbad60a29923f7e29f30069e (diff) | |
download | perl-7e40138b6937a53e2027c48d19bbbdf80c8a2f14.tar.gz |
Re: [abigail@foad.org: [ID 20000901.065] -MO=Deparse and $^W and $[ in same string.]
Message-ID: <20010420001853.A13350@puffinry.freeserve.co.uk>
p4raw-id: //depot/perl@9759
Diffstat (limited to 'ext')
-rw-r--r-- | ext/B/B/Deparse.pm | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/ext/B/B/Deparse.pm b/ext/B/B/Deparse.pm index 25db66ad1d..47e8e9929f 100644 --- a/ext/B/B/Deparse.pm +++ b/ext/B/B/Deparse.pm @@ -2630,14 +2630,14 @@ sub const_sv { sub pp_const { my $self = shift; my($op, $cx) = @_; + if ($op->private & OPpCONST_ARYBASE) { + return '$['; + } # if ($op->private & OPpCONST_BARE) { # trouble with `=>' autoquoting # return $self->const_sv($op)->PV; # } my $sv = $self->const_sv($op); # return const($sv); - if ($op->private & OPpCONST_ARYBASE) { - return '$['; - } my $c = const $sv; return $c =~ /^-\d/ ? $self->maybe_parens($c, $cx, 21) : $c; } @@ -2647,7 +2647,10 @@ sub dq { my $op = shift; my $type = $op->name; if ($type eq "const") { - return uninterp(escape_str(unback($self->const_sv($op)->PV))); + if ($op->private & OPpCONST_ARYBASE) { + return '$['; + } + return uninterp(escape_str(unback(const($self->const_sv($op))))); } elsif ($type eq "concat") { my $first = $self->dq($op->first); my $last = $self->dq($op->last); |