Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl Moose ArrayRef属性作为数组返回_Perl_Oop_Moose - Fatal编程技术网

Perl Moose ArrayRef属性作为数组返回

Perl Moose ArrayRef属性作为数组返回,perl,oop,moose,Perl,Oop,Moose,我有一个Moose类,它的属性是ArrayRef(只读),由对象在内部操纵。但是当有人调用访问器方法时,我希望它返回一个数组(或列表),而不是引用。这不仅会减少类用户必须进行的去引用量,而且还意味着他们不会意外地篡改我的对象正在使用的同一个ref 那么最好的方法是什么呢?某种胁迫?使用以下选项: 请注意,有时在使用reader方法时无法返回数组,具体取决于表达式的标量或列表上下文。不久前,我遇到了一种情况,为了使解引用工作,我必须显式地将数组上下文引入表达式。。如果我能找到,我将添加一个示例。使

我有一个Moose类,它的属性是ArrayRef(只读),由对象在内部操纵。但是当有人调用访问器方法时,我希望它返回一个数组(或列表),而不是引用。这不仅会减少类用户必须进行的去引用量,而且还意味着他们不会意外地篡改我的对象正在使用的同一个ref

那么最好的方法是什么呢?某种胁迫?

使用以下选项:

请注意,有时在使用reader方法时无法返回数组,具体取决于表达式的标量或列表上下文。不久前,我遇到了一种情况,为了使解引用工作,我必须显式地将数组上下文引入表达式。。如果我能找到,我将添加一个示例。

使用和委派,例如

handles => { my_array => 'elements' }
(通过驼鹿上的doy)


<代码> AutoMyDeFE./COD>如果在标量上下文中调用访问器,仍然有一个不希望返回的引用。

< P> >您可以使用<代码> AutoDeFE> /COD>,称这不是最好的方式,而应该考虑使用它来完成该功能。但是很明显,我的眼睛忽略了这么明显的事情:)自动删除的文档(在MooseGit中)现在让这更清楚了。
handles => { my_array => 'elements' }