in reply to Re^5: Can I check if a loop's scope is entered for the first time? (Devel::Callsite)
in thread Can I check if a loop's scope is entered for the first time?
What the heck...I just uploaded another new release of Var::Pairs
(version 0.004000), which lets you write this:
use Var::Pairs; sub countdown { my $n = shift; return sub { return if $n < 0; # Indicates iterator exhausted return $n--; # Next value iterated } } for my $limit (reverse 1..5) { while (my ($a) = each_value countdown($limit)) { print $a, ':'; } say q{}; }
...which is very close to what you wanted, I believe.
(And, yes, the each_value() subroutine is doing a lot of very hard paddling
under the surface to correctly ignore all those repeated calls to countdown($limit)
in the while loop. ;-)
for my $limit (reverse 1..5) { my $iter = countdown($limit); while (my ($a) = each_value $iter) { print $a, ':'; } say q{}; }
Damian
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^7: Can I check if a loop's scope is entered for the first time? (Devel::Callsite)
by LanX (Saint) on May 07, 2018 at 16:41 UTC | |
Re^7: Can I check if a loop's scope is entered for the first time? (Devel::Callsite)
by Anonymous Monk on May 07, 2018 at 18:50 UTC | |
by TheDamian (Vicar) on May 08, 2018 at 14:48 UTC | |
by QM (Parson) on May 09, 2018 at 12:14 UTC |
In Section
Seekers of Perl Wisdom