Ich beginne gerade mit Perl OOP mit dem "Moose" -Paket.
Der Compiler beklagt sich, dass "Nicht-lvalue-Unterroutinenaufruf bei Parser.pm Zeile 16 nicht geändert werden kann."
Ich verstehe nicht ganz, warum ich nicht einfach ein neues Objekt zuweisen kann. Ich denke, es gibt eine bessere oder mehr gültige Möglichkeit, optionale Parameter mit Moose zu machen?
%Vor%Während Perl die Möglichkeit bietet, Attribute so zu verwenden, wie Sie es seit vielen Jahren versuchen (über so genannte Lvalue-Subs), ist es nicht etwas, das in den ersten OO Perl-Releases enthalten war und die Leute ziemlich viel gelernt haben darauf verzichten. Vor allem, da die Validierung etwas schwierig (und ineffizient) ist.
Sie könnten MooseX :: Meta :: Attribute :: Lvalue verwenden. aber (nach dem Dokument) auf Kosten der Typüberprüfung einiger Attribute.
Ich würde nur empfehlen, sich an das $ self & gt; -Attribut ("value") zu halten.
Tags und Links perl parameters moose