0

OSX 'Mavericks' では、次のようになります。

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

...「perl -c」ごとにクリーンをチェックします。

FOO.pm 構文 OK

...しかし、「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() を使用するたびにエラーが発生します。)

4

1 に答える 1

1

Moose を使用するモジュールから奇妙なエラーが発生した場合、最初にすべきことはmoose-outdated、コマンド ラインでスクリプトを実行することです。インストールされている Moose のバージョンと互換性のない古い MooseX モジュールを使用している可能性があります。

moose-outdatedMoose をアップグレードするたびに実行する必要がありますが、インストールしている他のモジュールの依存関係の 1 つであるため、特に Moose がアップグレードされた場合は忘れがちです。

于 2014-11-09T07:32:28.823 に答える