in reply to Re: Closure confusion in Tkx (declarations in loops)
in thread Closure confusion in Tkx
to expand further on this, please see perlsyn#For-Loops
which means
is the same as this:for (my $i = 1; $i < 10; $i++) { ... }
{ my $i = 1; while ($i < 10) { ... } continue { $i++; } }
now compare the different effects from an inner declaration ($i) and an outer declaration ($x)
use strict; use warnings; # ---------- for c-style my @cfor; for ( my $x = 1 ; $x < 4; $x++ ) { my $i = $x; push @cfor, sub { warn "cfor: \ti=$i \tx=$x" }; } $_->() for @cfor; # ---------- while my @values = 1..3; my @while; my $x; while ( my $i = shift @values ) { $x = $i; push @while, sub { warn "while: \ti=$i \tx=$x" }; } $_->() for @while;
cfor: i=1 x=4 at d:/exp/pm_closure2.pl line 11. cfor: i=2 x=4 at d:/exp/pm_closure2.pl line 11. cfor: i=3 x=4 at d:/exp/pm_closure2.pl line 11. while: i=1 x=3 at d:/exp/pm_closure2.pl line 25. while: i=2 x=3 at d:/exp/pm_closure2.pl line 25. while: i=3 x=3 at d:/exp/pm_closure2.pl line 25.
Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery
FootballPerl is like chess, only without the dice
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: Closure confusion in Tkx (declarations in loops - inner vs outer)
by lbrandewie (Acolyte) on Jul 13, 2019 at 20:28 UTC | |
by AnomalousMonk (Archbishop) on Jul 13, 2019 at 22:01 UTC | |
by LanX (Saint) on Jul 13, 2019 at 21:35 UTC |