summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorRobin Houston <robin@cpan.org>2001-04-20 01:18:53 +0100
committerJarkko Hietaniemi <jhi@iki.fi>2001-04-19 22:36:51 +0000
commit7e40138b6937a53e2027c48d19bbbdf80c8a2f14 (patch)
treee7f254158b3b0c2cb91218806b1beca9992bb21f /ext
parentc38fcba2cef4fd93dbad60a29923f7e29f30069e (diff)
downloadperl-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.pm11
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);