¿Cómo puedo agregar datos de manera flexible a los objetos Moose?
Estoy escribiendo un módulo para un objeto alce. Me gustaría permitir que un usuario que usa este objeto (o yo mismo) agregue algunos campos sobre la marcha como lo desee. No puedo definir estos campos a priori ya que simplemente no sé cuáles serán.
Actualmente simplemente agregué un solo campo llamado extra de tipo hashref que está configurado enrw
, por lo que los usuarios simplemente pueden poner cosas en ese hash:
# $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};
Esto funciona. Pero ... ¿es esta una práctica común? ¿Alguna otra idea (posiblemente más elegante)?
Tenga en cuenta que no deseo crear otro módulo que amplíe este, esto realmente solo para cosas sobre la marcha que me gustaría agregar.