我正在为驼鹿物体写一个模块.我想允许使用此对象的用户(或我自己......)根据需要随时添加一些字段.我无法先验地定义这些字段,因为我根本不知道它们会是什么.
我目前只是添加了一个名为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};
Run Code Online (Sandbox Code Playgroud)
这有效.但是......这是一种常见的做法吗?还有其他(可能更优雅)的想法吗?
注意我不想创建另一个扩展这个模块的模块,这实际上只是为了我想添加的即时内容.