小编Nor*_*her的帖子

我可以在Perl中命名一个匿名数组吗?

#!/usr/bin/perl -w

use strict;

my $aref = [1, 2, 3];
my @a = @$aref;              # this line
$a[1] = 99;
print "aref = @$aref\n";
print "a = @a\n";
Run Code Online (Sandbox Code Playgroud)

产生输出:

aref = 1 2 3
a = 1 99 3
Run Code Online (Sandbox Code Playgroud)

输出显示@a并且@$aref不引用相同的数组.

标记的线是我的问题所在.标量的值$aref是对匿名数组的引用.在标记的行中,我希望能够使数组变量@a引用该数组,但会发生的是匿名数组被复制并@a引用匿名数组的副本.赋值和打印语句显示了这一点.

我知道当你分配给一个数组时,赋值的右边是一个列表上下文,所以它@$aref被强制转换为它的元素列表.有没有办法给这个@a引用的数组命名$aref

arrays perl

5
推荐指数
2
解决办法
197
查看次数

标签 统计

arrays ×1

perl ×1