标量找到了运算符在<script> </script>中所期望的位置

时间:2011-08-11 15:44:49

标签: perl moose

use Moose;

extends 'TEST::Role';

has 'name' => (
    is => 'ro',
    isa => 'Str',
    default => 'me',
);

这适用于perl 5.8.5但不适用于5.8.8。

如何解决?

String found where operator expected at B.PM line 4, near "extends 'TEST::Role'"
        (Do you need to predeclare extends?)

3 个答案:

答案 0 :(得分:5)

如果你可以把它变成一个失败的测试并将它发布到Moose邮件列表,或者发送到irc.perl.org上的#moose,我相信有人可以帮助理清正在发生的事情。

请确保包含所有代码,此处缺少您的包声明(作为第一个提示,我不会将我的包B命名为因为它与核心包冲突)。

答案 1 :(得分:4)

如果没有名为extends的函数,就会发生这种情况。也许你有一个破碎或旧的Moose安装?也许use Moose;之前的行缺少分号?

顺便说一下,您的文件名应为.pm,而不是.PM

答案 2 :(得分:1)

你需要把“包xxx;”在“使用驼鹿”之前排队。 这对我有用。