Chinaunix首页 | 论坛 | 博客
  • 博客访问: 641141
  • 博文数量: 54
  • 博客积分: 3812
  • 博客等级: 上校
  • 技术积分: 992
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-16 20:53
文章分类

全部博文(54)

文章存档

2010年(10)

2009年(24)

2008年(20)

分类:

2008-11-05 21:34:18

下面是我对perl中的匿名存储的一点想法与总结, 点滴记录自己学习中的一些心得, 若有错误, 还请指正.
 
看下面这段代码:
 

#!/usr/bin/perl


$a=[1,2];
print $a->[0], "\n";
print $$a[0], "\n";
print @$a[0], "\n";
print $a[0], "\n";

print "=" x 10;
print "\n";

 

@b=(3,4);
$rb = \@b;
print $rb->[0],"\n";
print $$rb[0],"\n";

在这段代码中,只有$a[0]是不起作用的,而$a->[0], $$a[0], @$a[0]都是起作用的,从这点可以看出,在这里,是$a的作用就是一个指针,它的作用就与后面的$rb的作用相同,通过$a去访问时,就需要使用$$a[0]或者是$a->[0]的方式.

 

再看下面这段代码:

 

#!/usr/bin/perl


$h{"test"}=[3,4];
print $h{"test"}->[1], "\n";
print ${$h{"test"}}[1], "\n";
print $h{"test"}[1], "\n";

在这里, $h{"test"}->[1]的方式是很正常的,因为$h{"test"}是一个引用类型,要访问其中的元素,则使用->的方式. 而${${"test"}}[1]也是正常的,加上{}是因为优先级的原因. 而最后的$h{"test"}[1]看起来则少了一点什么东西, 在黑豹书中讲到

"谈到程序员的效率,让我们谈论一个节省键盘敲击次数的技巧.在两个下标之间(也只有在下标之间)你可以省去箭头符号"->".也就是说,下面的这两条语句是等效的"

$h{"test"}->[1] 与 $h{"test"}[1]

所以在这种有下标的情况下,就可以节省"->"了.

 

阅读(2059) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~