Wie kann ich Elchobjekten flexibel Daten hinzufügen?
Ich schreibe ein Modul für ein Elchobjekt. Ich möchte einem Benutzer, der dieses Objekt verwendet (oder mir selbst ...), erlauben, spontan Felder hinzuzufügen, wie er es wünscht. Ich kann diese Felder nicht von vornherein definieren, da ich einfach nicht weiß, wie sie aussehen werden.
Ich habe gerade einfach ein einzelnes Feld mit dem Namen extra vom Typ hashref hinzugefügt, das auf @ gesetzt isrw
, damit Benutzer einfach Sachen in diesen Hash einfügen können:
# $obj is a ref to my Moose object
$obj->extra()->{new_thingie}="abc123"; # adds some arbitrary stuff to the object
say $obj->extra()->{new_thingie};
Das funktioniert. Aber ... ist das eine gängige Praxis? Irgendwelche anderen (möglicherweise eleganteren) Ideen?
Hinweis Ich möchte kein weiteres Modul erstellen, um dieses zu erweitern. Dies ist wirklich nur für Dinge, die ich im laufenden Betrieb hinzufügen möchte.