use strict; use warnings; use 5.010; sub gen_iter { my $a = shift; sub { $a++ }; } my $it1 = gen_iter 10; my $it2 = gen_iter 20; say $it1->(); say $it2->(); say $it1->(); say $it2->(); __END__ 10 20 11 21