Как я могу гибко добавлять данные в объекты Moose?
Я пишу модуль для объекта лося. Я хотел бы позволить пользователю, использующему этот объект (или мне самому), добавлять некоторые поля на лету, как он / она желает. Я не могу определить эти поля априори, так как просто не знаю, какими они будут.
В настоящее время я просто добавил одно поле с именем extra типа hashref, которое установлено вrw
так что пользователи могут просто помещать вещи в этот хеш:
# $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};
Это работает. Но ... это обычная практика? Какие-нибудь другие (возможно, более изящные) идеи?
Заметьте, я не хочу создавать еще один модуль, расширяющий этот, это действительно просто для вещей на лету, которые я хотел бы добавить.