/ / "Numero dispari di elementi hash" quando si dichiara MooseX :: ClassAttribute - perl, moose, class-attributo

"Numero dispari di elementi hash" quando si dichiara MooseX :: ClassAttribute - perl, alce, attributo di classe

Su OSX "Mavericks", questo:

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

... controlla clean per "perl -c":

Sintassi FOO.pm OK

... ma dà questo errore se lo eseguo semplicemente con "perl FOO.pm":

Numero dispari di elementi nell'assegnazione hash a/System/Library/Perl/Extras/5.16/MooseX/ClassAttribute.pm linea 37. Non è possibile utilizzare la stringa ("file") come riferimento HASH mentre "riferimenti rigorosi" sono in uso su /Library/Perl/5.16/darwin-thread-multi-2level/Moose/Meta/Attribute.pm linea 71.

Ho provato in ogni modo possibile per capire cosa fossesta succedendo qui, ma sono "sconcertato. C'è qualcos'altro che devo" usare "o dichiarare per primo? (Questo è il più piccolo caso di test che posso trovare, ma l'errore si verifica ogni volta che uso class_has () in un modulo .)

risposte:

1 per risposta № 1

Quando ricevi strani errori da un modulo che usa Moose, la prima cosa da fare è eseguire il moose-outdated script dalla riga di comando. Probabilmente hai un modulo MooseX obsoleto che non è compatibile con la versione installata di MooseX.

Dovresti correre moose-outdated ogni volta che aggiorni Moose, ma è facile da dimenticare, specialmente quando Moose è stato aggiornato perché è una delle dipendenze di qualche altro modulo che stai installando.