summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFather Chrysostomos <sprout@cpan.org>2011-09-17 22:39:17 -0700
committerFather Chrysostomos <sprout@cpan.org>2011-09-17 22:41:09 -0700
commit6ec73527899164b78a87bc4fc6b180ea6f8087b5 (patch)
tree2999fd3114ffabb3e234719ae3440a6fff49dfdc
parent433644eed8ac93495dfaad947c1503ce219b414b (diff)
downloadperl-6ec73527899164b78a87bc4fc6b180ea6f8087b5.tar.gz
Deparse $#{/} correctly
-rw-r--r--dist/B-Deparse/Deparse.pm3
-rw-r--r--dist/B-Deparse/t/deparse.t7
-rw-r--r--pod/perldelta.pod6
3 files changed, 16 insertions, 0 deletions
diff --git a/dist/B-Deparse/Deparse.pm b/dist/B-Deparse/Deparse.pm
index abe18a85ec..7936fcdbf6 100644
--- a/dist/B-Deparse/Deparse.pm
+++ b/dist/B-Deparse/Deparse.pm
@@ -1302,6 +1302,9 @@ sub stash_variable {
return "$prefix\{$name}";
}
}
+ if ($prefix eq '$#' && $name =~ /^[^\w+-]$/) {
+ return "\$#{$name}";
+ }
my $v = ($prefix eq '$#' ? '@' : $prefix) . $name;
return $prefix .$self->{'curstash'}.'::'. $name if $self->lex_in_scope($v);
diff --git a/dist/B-Deparse/t/deparse.t b/dist/B-Deparse/t/deparse.t
index f8b52eda0c..92f8ae0857 100644
--- a/dist/B-Deparse/t/deparse.t
+++ b/dist/B-Deparse/t/deparse.t
@@ -765,3 +765,10 @@ CORE::given ($x) {
CORE::break;
}
}
+####
+# $#- $#+ $#{%} etc.
+my @x;
+@x = ($#{`}, $#{~}, $#{!}, $#{@}, $#{$}, $#{%}, $#{^}, $#{&}, $#{*});
+@x = ($#{(}, $#{)}, $#{[}, $#{{}, $#{]}, $#{}}, $#{'}, $#{"}, $#{,});
+@x = ($#{<}, $#{.}, $#{>}, $#{/}, $#{?}, $#{=}, $#+, $#{\}, $#{|}, $#-);
+@x = ($#{;}, $#{:});
diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index 178738a5d5..25ef87c49a 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -172,6 +172,12 @@ L<Archive::Tar> has been upgraded from version 1.76 to version 1.78.
=item *
+L<B::Deparse> has been upgraded from version 1.07 to 1.08.
+
+It now correctly deparses C<$#{/}>.
+
+=item *
+
L<CPAN::Meta> has been upgraded from version 2.112150 to version 2.112580.
=item *