my @tasks = (); { my $x = 'A'; push @tasks, sub {print "Doing task $x\n";}; } { my $x = 'B'; push @tasks, sub {print "Doing task $x\n";}; } foreach (@tasks) {$_->();}