以这种方式使用“can”功能是什么意思?

anu*_*amb 3 perl

我知道“can”方法检查包是否具有“some_method”方法。但是,“->(animal => $x)”部分发生了什么?

$z = __PACKAGE__->can("some_method")->(animal => $x)
Run Code Online (Sandbox Code Playgroud)

k-m*_*-mx 7

can()如果存在,将返回对方法的引用,然后将使用“取消引用箭头”取消引用该方法。您必须将其包装到 eval 中,否则如果“some_method”不存在,则会引发异常。在此处阅读更多信息:

关于can()perldoc UNIVERSAL

关于取消引用子程序: perldoc perlref