sub all_even_from{ my $even=shift; sub { $even+=2; } } $iter=all_even_from(4); print $iter->() for (1..5); #### for (1 ..5) { print shift @even; }