Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3988
  • 博文数量: 3
  • 博客积分: 3
  • 博客等级: 民兵
  • 技术积分: 35
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-25 17:09
文章分类

全部博文(3)

文章存档

2014年(3)

我的朋友

分类: PERL

2014-07-17 13:53:20

其他集锦 
我承诺以10%的细节来使你得到90%的好处,那就意味着我跳过了90%的知识的细节。现在来看一下其中的重要的部分,这个比阅读手册 the perlref manpage 要容易得多,手册讨论了100%的细节。 

手册 the perlref manpage中的一些集锦: 

你可以对任何东西创建'引用',包括标量,函数和其他的引用。  

在 使用规则 1 中,当大括号里面是一个象$aref这样的标量变量时,你可以省略掉这个大括号。例如, @$aref 和 @{$aref}是一样的,$$aref[1] 和 ${$aref}[1]是一样的。 如果你是初学者,建议你还是养成加上大括号的习惯。  

下面的操作不会copy '引用'指向的数组:  
        $aref2 = $aref1; 
你将得到两个'引用',它们都指向同一个数组。如果你修改了$aref1->[23]的值,那么你查看变量$aref2->[23]时,它也相应地变了。 

要copy这个数组,你需要这样 

        $aref2 = [@{$aref1}]; 
使用符号 [...] 来创建一个新的匿名数组, 而且这个新的数组的'引用'被赋值给了$aref2 。 这个新的数组用'引用'$aref1所指向的数组的内容来初始化。 

同样的,要copy一个匿名哈希,你需要这样 

        $href2 = {%{$href1}}; 

如果要判断一个变量保存的内容是不是'引用',使用函数ref 。如果它的参数是'引用',返回的值是'真'。实际上,它做得更好:如果是一个哈希的引用,它返回'HASH',如果是一个数组的引用,那么就返回'ARRAY'。  

如果你想像字符串一样使用'引用'的话,你得到的字符串就像  
        ARRAY(0x80f5dec)   or    HASH(0x826afc0) 
如果看到一个像这样的字符串,你应该知道你错误地输出了一个'引用'。 

这种显示方式的另一个作用是你可以用eq来比较两个'引用',看它们是不是指向相同的东西。(你通常可以使用 == 来比较,因为它更会) 


你 可以像使用'引用'一样来使用一个字符串。如果你使用"foo"作为一个数组的'引用',它就是指向数组 @foo的一个引用。这被称为'软引用'或‘符 号引用 '。 使用申明 use strict 'refs' 可以取消这个功能,如果你不小心使用了它,会导致各种可能的错误。 
阅读(224) | 评论(0) | 转发(0) |
0

上一篇:perl 中哈希的键值必须是标量

下一篇:没有了

给主人留下些什么吧!~~