您可能想要使用can
方法,但这是错误的,它可能导致误报,因为它服从继承。您想使用exists
。
my $name = ...;
my @args = ...;
die("$name doesn't exist\n") if !exists(&$name);
(\&$name)->(@args);
没有严格的话,
$name->(@args)
就足够了。奇怪的语法绕过严格。
-
PACKAGE->can($fn)
,PACKAGE默认为main
。
-
defined &{$fn}
醇>
can
也会返回对此函数的CODE引用(如果存在)。