use strict; use warnings; sub foo { delete $::{foo}; print "alive\n"; } foo(); eval "foo()" or die $@;