/ / "Непарне число хеш-елементів" при оголошенні MooseX :: ClassAttribute - perl, moose, class-атрибут

"Непарне число хеш-елементів" при оголошенні MooseX :: ClassAttribute - perl, moose, class-атрибут

На OSX "Mavericks", це:

package FOO;
use Moose;
use MooseX::ClassAttribute;
class_has "BAR" => ( is => "rw" );

... перевірка чистих на perl-c:

Синтаксис FOO.pm ОК

... але дає цю помилку, якщо я запускаю його просто "perl FOO.pm":

Непарне число елементів у хеш-призначенні на/System/Library/Perl/Extras/5.16/MooseX/ClassAttribute.pm рядок 37. Неможливо використати рядок ("файл") як хеш-реф, в той час як "строгі посилання" використовуються на /Library/Perl/5.16/darwin-thread-multi-2level/Moose/Meta/Attribute.pm рядок 71.

Я всіляко намагався зрозуміти, щоПродовжую сюди, але я задираюсь.Чи є щось інше, що я повинен "використовувати" або оголосити спочатку? (Це найменший тест, який я міг придумати, але помилка трапляється кожного разу, коли я використовую class_has () в модулі .)

Відповіді:

1 для відповіді № 1

Коли ви отримуєте дивні помилки від модуля, який використовує Moose, перше, що потрібно зробити, це запустити moose-outdated скрипт у командному рядку. Ви, напевно, маєте застарілий модуль MooseX, який не сумісний з встановленою версією Moose.

Ви повинні бігти moose-outdated кожен раз, коли ви оновлюєте Moose, але його легко забути, особливо коли Moose було оновлено, оскільки це - одна з залежностей іншого модуля, який ви встановлюєте.