2008年9月10日星期三

perlnotes: 引用和引用中的->

->是一种明确使用引用的方式
$array = \@array;
$scalar = $array->[1];
但要注意的是并没有
@slice = $array->[0..2]这种写法,范围操作符在这种情况下并不适用
同样
@slice = $array->[0,2]也不会正常工作,就像上一个note一样,0,2在scalar下会返回2,@slice获得的是$array->[2]

在两个下标之间的->可以省略
比如$sue{child}->{brother}->[0]完全可以写成$sue{child}{brother}{0}

不能省略的情况
$ref=['foo','bar'];
print $ref[0] ##error
print $ref->[0];
print $$ref[0]; #both ok

***********华丽的提示符**********
my @array.....
my $ref=\$array[1];
pop @array
print $ref ##在这里仍然获得$array[1]的值

没有评论: