Moose变量名称中不得包含::

时间:2019-03-10 07:52:53

标签: perl perl-module moose

所以我遇到了这个奇怪的错误。

  

变量名称中不得包含::   ... / perl5 / lib / perl5 / x86_64-cygwin-threads-multi / Class / MOP / Package.pm

触发它的代码是:

findOne

我发现了以下有关错误的链接:http://codeverge.com/perl.perl5.porters/a-very-old-bug-in-safe.pm/2018166

这有关系吗?

如果我将'::'取出,它就消失了,但是确实弄乱了我命名事物的方式,因此,如果有解决方法,我将不胜感激。

-E

1 个答案:

答案 0 :(得分:5)

override的第一个参数必须是继承方法的(非限定)方法名称。

emitEvent::ENOTE::Final不是可接受的Perl方法名称,因为Perl会将其表示为软件包Final中名为emitEvent::ENOTE的方法。如果您在创建一个名为that的方法时弄虚作假,则应修复该问题。