sub wrap { my ($old_body, $environment) = @_; my $new_body = <<'__WRAP__'; #---PRE_BODY my $foo++; # new var ## #--- POST_BODY print $foo; __WRAP__ $new_body =~ s/##/$old_body/g; my $code = eval_closure( source => "sub { $new_body }", environment => $environment, ); }