在C#中,可以创建对引用类型的引用:
SomeObject origObj = new SomeObject();
SomeObject objRef = origObj;
origObj和objRef都引用同一个对象。
现在,在perl中:
my @arr = (1,2,3);
method(\@arr);
sub method
{
my $arr_ref = shift;
foreach my $element (@{$arr_ref})
{
#...
}
}
我想在方法中使用“ @myArr”,而不必每次都强制转换:“ @ {$ arr_ref}”,并且无需创建数组副本即可执行此操作(因为我的“ @myArr = @ {$ arr_ref}”将创建一个副本)。
总结一下:如何在不创建副本的情况下获取“ @myArr = @ {$ arr_ref}”?
如果您很高兴@myArr
成为包变量(our
)而不是词法变量(my
),则可以执行以下操作:
our @myArr;
local *myArr = $arr_ref;
这将使@myArr充当$ arr_ref指向的数组的别名。
如果您需要@myArr
词汇,那么可以使用Data :: Alias:
use Data::Alias;
alias(my @myArr = @$arr_ref);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句