# New Ticket Created by "Carl Mäsak" # Please include the string: [perl #58392] # in the subject line of all future correspondence about this issue. # <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=58392 >
r30589: $ cat for-loop-recursion.bug sub f($l) { return() if $l <= 0; say "entering $l"; for 1..3 { f($l-1); say "looping in $l"; } } f(2); $ ./perl6 for-loop-recursion.bug entering 2 entering 1 looping in 1 looping in 0 looping in -1 looping in 2 looping in -2 looping in -3 Something to do with local pads, perhaps? FWIW, I can trace the bug back to r29884, the first revision that gives any output at all on the above script. Here's a Perl 5 comparison: $ cat for-loop-recursion.p5 use strict; use warnings; sub f { my $l = shift; return if $l <= 0; print "entering $l\n"; for (1..3) { f($l-1); print "looping in $l\n"; } } f(2); $ perl for-loop-recursion.p5 entering 2 entering 1 looping in 1 looping in 1 looping in 1 looping in 2 entering 1 looping in 1 looping in 1 looping in 1 looping in 2 entering 1 looping in 1 looping in 1 looping in 1 looping in 2