浏览 1476 次
锁定老帖子 主题:perl中的引用类型
精华帖 (0) :: 良好帖 (0) :: 灌水帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-11-17
最后修改:2011-06-24
概括: 可以把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[0] 第一个元素。 $b->[0] 同上
对列表进行引用的结果只能获得列表最后一个元素的引用。
三、取得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
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |