sub RemoveThing { my $thingid = shift(); my $thingtodo = q[sub {&Handlers::thing_remove("_thingid");}]; $thingtodo =~ s/\b_thingid\b/quotemeta($thingid)/ge; $thingtodo = eval($thingtodo); # QueueAction serializes it's first argument QueueAction($thingtodo); } #### 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) {$_->();} #### my @tasks = (); my $x; $x = 'A'; push @tasks, sub {print "Doing task $x\n";}; $x = 'B'; push @tasks, sub {print "Doing task $x\n";}; foreach (@tasks) {$_->();}