Donc j'essaie simplement de faire une chose très simple: définir un accesseur de lecteur personnalisé pour un attribut d'orignal. J'essaie donc ceci:Perl Moose accessor Moose - ne peut pas définir uniquement un lecteur ou lecteur accesseur!
has 'compiled_regex' => (
isa => 'RegexpRef',
is => 'rw',
reader => 'get_compiled',
);
mais get_compiled
ne sera jamais appelé, sans doute parce que compiled_regex
est en lecture/écriture. Ok, pas de problème. J'essaie ensuite ceci:
has 'compiled_regex' => (
isa => 'RegexpRef',
writer => '_compile',
reader => 'get_compiled',
);
et qui produit l'erreur suivante:
Can't locate object method "compiled_regex" via package "PrettyRegex" at ../lib/Pretty/Regexs.pm line 39.
qui fait référence à cette ligne qui est dans le _ compile
méthode:
$self->compiled_regex(qr/$self->regex/);
Maintenant, je n » J'ai beaucoup dormi au cours des 3 derniers jours alors peut-être que je suis confus, mais il semble que même si cela a fonctionné, cela créerait une régression infinie depuis que j'ai défini l'écrivain comme _compile
... A suis-je manquant ici?
essayé réponse Sinan, mais encore obtenir:
Can't locate object method "compiled_regex" via package "PrettyRegex" at ../lib/Pretty/Regexs.pm line 41.
Je ne connais pas assez Moose pour connaître le problème, mais quelqu'un peut changer le titre du message en question. –
J'ai fait le nom du lecteur 'get_compiled_regex' lors de la modification du script pour une raison quelconque. C'est pourquoi vous recevez ce message. –