我们可以像标量那样复制和传递引用。而且在任何时候,Perl都知道引用数据的数量。Perl也可以创建对匿名数据结构的引用(这种数据结构没有显式的名字)而且可以为了满足特定操作而创建引用。
数据的多个引用
在Chapter4已经探究了对数组的引用和把这种引用放到一个新的标量上
my @skipper = qw(blue_shirt hat jacket perserver sunscreen);
my $reference_to_skipper = /@skipper;
我们可以复制这个引用或者增加额外的引用,它们都将引用相同的数据
my $second_reference_to_skipper = $reference_to_skipper;
my $third_reference_to_skipper = /@skipper;
上面的四种表示方式都可以访问@skipper,而且Perl会通过一种称为“引用数”来跟踪对访问数据的引用数量。
只要愿意,并且引用数不为0,我们可以增加或删除引用,Per保持这些数据在内存中,所以可以通过其他引用来访问这些数据。
下面看一个例子:
check_provisions_list(/@skipper);
这时为创建第五个引用,但当函数返回时,这个引用会自动删除。
我们也可用其他方式来取消这种引用。例如,我们可对变量赋一undef:
$reference_to_skipper = undef;