我有错误:
Ambiguous call resolved as CORE::join(), qualify as such or use & at
Run Code Online (Sandbox Code Playgroud)
当我修复错误时:
$args = CORE::join( ', ', @$args );
Run Code Online (Sandbox Code Playgroud)
一切正常.
但当我把它修复为:
$args = &join( ', ', @$args );
Run Code Online (Sandbox Code Playgroud)
正如错误消息所示,我得到了不同的错误:
Can't locate object method "_make_instance" via package ", " (perhaps you forgot to load ", "?) at
Run Code Online (Sandbox Code Playgroud)
为什么第二次修复不起作用?
您收到错误是因为您有一个名为join的子命令,因此您需要消除它的歧义.为了使它调用内置,前置CORE::.为了使它调用sub,prepend &.
该错误是因为您正在调用sub,它实际上是一个期望将对象或类作为第一个参数的方法,当您使用方法调用语法时,它将隐式发生.