perl中的引用类型
概括:可以把perl中的引用联想成c++或者java中的引用类型,可以简单的认为就是一个指针(可以想象成句柄,不是简单通过访问地址取得值),所以引用是一个标量。
一、取得标量的引用
$a=1; #a代表$a的首地址,$可以想象长c中的*,$a是这个地址里的值。
$b=\$a; (可以把\想象成&)
# b 是 $a地址的地址,$b是$a的地址,$$b是$a的值。
当然也可以取得常量的应用 $b=\123,不过这样好像没有什么意义。
二、取得数组的引用
@arr1=(1,2,3); #可以理解为arr1为数组的首地址,前面加上@可以代表整个数组。
$b=\@arr1; # b是数组首地址的地址,$b是数组的首地址,@$b代表整个数组。
$$b 第一个元素。
$b-> 同上
对列表进行引用的结果只能获得列表最后一个元素的引用。
三、取得hash的引用
%hash1=("one"=>1,"two"=2,"three=>3");
$b=\%hash1;
原理和数组相同。
四、取得函数的引用
sub fun1
{
print("good!");
}
$a=\&fun1; #$a是函数fun1的首地址。
&$a();#&把首地址当成是函数来解释。
$a = sub
{
print("good!");
};
&$a(); #匿名的函数,相当于$a存储了函数的首地址。
五、符号引用
$a=1;
$b="a"; #可以认为是引用的另一种书写方式,但是只有当$b在被当成引用解释的环境中才会生效。
print($$b); #输出1
页:
[1]