in reply to undef-ing an active subroutine
use strict; use warnings; sub foo { delete $::{foo}; print "alive\n"; } foo(); eval "foo()" or die $@; [download]