sub foo {} sub bar; my @names = qw( foo bar baz ); local $, = "\t"; local $\ = "\n"; print('', @names); print('exists', map { exists(&$_) ?1:0 } @names); print('defined', map { defined(&$_) ?1:0 } @names); #### foo bar baz exists 1 1 0 defined 1 0 0 #### >perl -e"sub bar; bar()" Undefined subroutine &main::bar called at -e line 1.