sub make_closures { my $j = 0; my @closures; while (++$j < 7) { my $i = $j; push (@closures, sub {print $i;}); } return @closures; } foreach my $sub (&make_closures) { &$sub; }