sub bar { my $class = shift; if ( my $f = $class->can("foo") ) { if ( ! defined(&$f) ) { print "foo is undefined\n"; return; } print "yes, I can foo\n"; Bar->$f(); } }