{ my @toDelete; END { for( @toDelete ) { unlink $_ or warn "Can't delete $_: $!\n"; } } sub new_tmpfile_name { # ... push @toDelete, $name; return $name; } }