You could use a subroutine reference and form a closure over $i using a do block so that it remains in scope outside the block.
johngg@aleatico:~$ perl -Mstrict -Mwarnings -E 'say q{}; my $rcShow = do { my $i = 1; sub { return $i ++ }; }; say $rcShow->() for 1 .. 3;' 1 2 3
I hope this is helpful.
Cheers,
JohnGG
In reply to Re: Access a global variable from a subroutine when used as "for" iterator
by johngg
in thread Access a global variable from a subroutine when used as "for" iterator
by vitoco
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |