my @looper = (0..5); foreach my $lp (@looper){ ... subprocess preparation as in the OP ... sub { my $i = $lp || 5; return $i; } }