我有一个Moose类,其属性是一个ArrayRef(只读),并由对象内部操作.但是当有人调用访问器方法时,我希望它返回一个数组(或列表)而不是引用.这不仅会减少类的用户必须执行的解除引用量,而且还意味着它们不会意外地篡改我的对象使用的相同引用.
那么最好的方法是什么?某种强制?
解决方法
使用
Moose::Meta::Attribute::Native::Trait::Array和委托,例如
handles => { my_array => 'elements' }
(通过#moose上的doy)
如果在标量上下文中调用访问器,则auto_deref具有仍然返回引用的不良行为.