Moose 变量名不能包含 :: at
Moose Variable names may not contain :: at
所以我遇到了这个奇怪的错误。
Variable names may not contain :: at
.../perl5/lib/perl5/x86_64-cygwin-threads-multi/Class/MOP/Package.pm
触发的代码是:
override 'emitEvent::ENOTE::Final' => sub {
my ($self, $e) = @_;
my ($rval);
$rval = super();
return($rval);
};
我发现这个 link 关于一个错误:http://codeverge.com/perl.perl5.porters/a-very-old-bug-in-safe.pm/2018166
这有关系吗?
如果我去掉“::”,它就会消失,但确实会影响我命名事物的方式,所以如果有解决方法,我将不胜感激。
-E
override
的第一个参数必须是继承方法的(非限定)方法名称。
emitEvent::ENOTE::Final
不是可接受的 Perl 方法名称,因为 Perl 会将其视为包 emitEvent::ENOTE
中名为 Final
的方法。如果你在创建一个名为那个的方法时愚弄了一些东西,你应该修复它。
所以我遇到了这个奇怪的错误。
Variable names may not contain :: at .../perl5/lib/perl5/x86_64-cygwin-threads-multi/Class/MOP/Package.pm
触发的代码是:
override 'emitEvent::ENOTE::Final' => sub {
my ($self, $e) = @_;
my ($rval);
$rval = super();
return($rval);
};
我发现这个 link 关于一个错误:http://codeverge.com/perl.perl5.porters/a-very-old-bug-in-safe.pm/2018166
这有关系吗?
如果我去掉“::”,它就会消失,但确实会影响我命名事物的方式,所以如果有解决方法,我将不胜感激。
-E
override
的第一个参数必须是继承方法的(非限定)方法名称。
emitEvent::ENOTE::Final
不是可接受的 Perl 方法名称,因为 Perl 会将其视为包 emitEvent::ENOTE
中名为 Final
的方法。如果你在创建一个名为那个的方法时愚弄了一些东西,你应该修复它。