Chinaunix首页 | 论坛 | 博客
  • 博客访问: 348099
  • 博文数量: 26
  • 博客积分: 3726
  • 博客等级: 中校
  • 技术积分: 621
  • 用 户 组: 普通用户
  • 注册时间: 2005-03-29 08:59
文章分类

全部博文(26)

文章存档

2008年(26)

分类:

2008-04-01 11:57:10

例:bless函数与ref函数,以及hash

1. 构造函数是类的子程序,它返回与类名相关的一个引用。将类名与引用相结合称为“祝福”一个对象,因为建立该结合的函数名为bless(),其语法为:

    bless YeReference [,classname]

    YeReference是对被“祝福”的对象的引用,classname是可选项,指定对象获取方法的包名,其缺省值为当前包名。

    创建一个构建函数的方法为返回已与该类结合的内部结构的引用,如:

 

    sub new {

      my $this = {}; # Create an anonymous hash, and #self points to it.

      bless $this; # Connect the hash to the local package   return $this; # Return the reference to the hash.

    }

    1;

    {}创建一个对不含键/值对的哈希表(即关联数组)的引用,返回值被赋给局域变量$this。函数bless()取出该引用,告诉对象它引用的是当前包,最后返回该引用。函数的返回值现在指向这个匿名哈希表。

    从new()函数返回后,$this引用被销毁,但调用函数保存了对该哈希表的引用,因此该哈希表的引用数不会为零,从而使Perl在内存中保存该哈希表。创建对象可如下调用:

    $cup = new Cocoa;

2.ref($var),如果$var为一个引用,ref函数返回被引用的对象名。如果$var不是一个引用,ref函数返回undef。

3.my $self = {} #创建一个空的匿名hash表的引用

4.my ($class, $name) = @_;等价于

my $calss = shift;

my $name = shift;

shift 的意思就是把整个 array 的第一个 value 取出,并将 array 长度减一(有点像 pop out)

阅读(1997) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:perl中的特殊内置变量

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