summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorGisle Aas <gisle@aas.no>1998-07-10 16:04:44 +0200
committerGurusamy Sarathy <gsar@cpan.org>1998-07-11 02:54:02 +0000
commitd8d95777eda225e5e5adb348f812ffc22a87caf5 (patch)
tree1694f625b21b6de5b8c32079395743daf2e67ec6 /ext
parent782f0963ab0b062cf0c3fc5bdd300cab850d5a04 (diff)
downloadperl-d8d95777eda225e5e5adb348f812ffc22a87caf5.tar.gz
B::Deparse for(1..100000)
Message-ID: <m3n2ahx677.fsf@furu.g.aas.no> p4raw-id: //depot/perl@1421
Diffstat (limited to 'ext')
-rw-r--r--ext/B/B/Deparse.pm9
1 files changed, 8 insertions, 1 deletions
diff --git a/ext/B/B/Deparse.pm b/ext/B/B/Deparse.pm
index 91c08e7b7e..d9b0cd9ced 100644
--- a/ext/B/B/Deparse.pm
+++ b/ext/B/B/Deparse.pm
@@ -1513,7 +1513,14 @@ sub pp_leaveloop {
} elsif ($enter->ppaddr eq "pp_enteriter") { # foreach
my $ary = $enter->first->sibling; # first was pushmark
my $var = $ary->sibling;
- $ary = $self->deparse($ary, 1);
+ if ($enter->flags & OPf_STACKED) {
+ my $from = $ary->first->sibling;
+ my $to = $from->sibling;
+ $ary = join("", "(", $self->deparse($from,1), " .. ",
+ $self->deparse($to,1), ")");
+ } else {
+ $ary = $self->deparse($ary, 1);
+ }
if (null $var) {
if ($enter->flags & OPf_SPECIAL) { # thread special var
$var = $self->pp_threadsv($enter, 1);