不明确的调用解析为 CORE::join(),符合条件或使用 & at



我收到错误:

Ambiguous call resolved as CORE::join(), qualify as such or use & at

当我将错误修复为:

$args =  CORE::join( ', ', @$args );

一切正常。

但是当我将其修复为:

$args =  &join( ', ', @$args );

按照错误消息的建议,我得到了不同的错误:

Can't locate object method "_make_instance" via package ", " (perhaps you forgot to load ", "?) at

为什么第二个修复不起作用?

您收到错误是因为您有一个名为 join 的子,因此您需要消除歧义。 要使其调用内置,请在前面加上CORE::。 要使其调用 sub,请在前面加上&

此错误是因为您正在调用 sub,它实际上是一个期望对象或类作为第一个参数的方法,当您使用方法调用语法时,这将隐式发生。

您收到该警告是因为您定义了一个名为join的子例程。现在Perl不确定join( ', ', @$args )应该调用内置函数还是你的子例程。

CORE::join明确地调用内置join.

&join(...)明确地调用您的子例程(并覆盖它可能具有的任何原型(。至于为什么你的子例程会抛出关于一个名为,_make_instance的包的奇怪错误,如果你不向我们展示代码,我们就无法回答这个问题。

相关内容

  • 没有找到相关文章

最新更新