in reply to Re: Deparse broken or just misunderstood?
in thread Deparse broken or just misunderstood?

That behavior is, at least, fully documented. for loop variables are always localized (or lexically declared) to the block. Predicate-for cannot have a named loop variable. (Note: my situation did not concern itself with loop variables, but lexicals declared in the list of a block-for are scoped to the block, while those in a predicate-for are scoped to the enclosing block/file)

It might be nice to expand the syntax to allow a reference to a scalar variable to be given as the loop variable, and the referenced variable would be used instead of a newly-created variable.

my $i = 123; for \$i ( 0 .. 10 ) { last if $i == 5; } print $i; __END__ 5
The present situation provides a use for a C-style for loop:
my $i = 123; for ($i = 0; $i <= 10; ++$i) { last if $i == 5; } print $i; __END__ 5

Caution: Contents may have been coded under pressure.