Thread [Mouse] Attribute zur Laufzeit generieren und vererben
(5 answers)
Opened by GwenDragon at 2023-07-24 17:10
Zunächst mal: Mit
![]() Wenn Du selbst zur Laufzeit beliebige Attribut-Namen nicht nur ins Objekt reinschreiben willst, sondern auch für diese Namen Accessor-Funktionen und Typ-Prüfung haben willst, dann musst Du in ![]() Ich verstehe allerdings Dein Problem nicht so recht. Sind es beliebige Namen, die als Name = Wert aus der Konfigurationsdatei gelesen werden? Muss die übergeordnete Klasse für diese Namen mehr tun als sie nur abspeichern und bei Bedarf wieder rausrücken? So, wie das bisher dasteht, würde ich für die Name = Wert-Paare ein Hashref oder ein MyModule::Config::Text-Object als Attribut verwenden. Das ist dann keine Vererbung, sondern eine "hat-eine"-Beziehung: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 use 5.026; package MyModule::Config { use Mouse; has text => (is => 'ro', isa => 'MyModule::Config::Text'); } package MyModule::Config::Text { use Mouse; has Name => (is => 'ro'); } my $c = MyModule::Config->new( text => MyModule::Config::Text->new(Name => 'Wert') ); say $c->text->Name; # 'Wert' |