BEGIN { my @coderef; END { $_->() for @coderef } sub atEND { push @coderef, @_ } } ... sub new_tempfile_name { ... atEND(sub { unlink $name }); return $name; }