#! perl -sw use strict; sub make_closures { my $j = 0; my @closures; while (++$j < 7) { my $jj = $j; push (@closures, sub {print $jj, "\n";}); } return @closures; } foreach my $sub (&make_closures) { $sub->(); } __DATA__ C:\test>205818 1 2 3 4 5 6