据我所知,在类的"new“方法中使用Perl中的"bless”关键字:
sub new {
my $self = bless { };
return $self;
}
但是“上帝保佑”到底对那个散列引用做了什么呢?
发布于 2008-12-24 19:58:10
发布于 2008-12-24 20:39:54
bless
将引用与包关联。
引用是什么并不重要,它可以是散列(最常见的情况)、数组(不常见的情况)、标量(通常表示inside-out object)、正则表达式、子例程或TYPEGLOB (有关有用的示例,请参阅Object Oriented Perl: A Comprehensive Guide to Concepts and Programming Techniques by Damian Conway一书),甚至可以是对文件或目录句柄的引用(最不常见的情况)。
bless
-ing的作用在于,它允许您将特殊语法应用于受祝福的引用。
例如,如果一个有福的引用存储在$obj
中(通过bless
与包“Class”相关联),那么$obj->foo(@args)
将调用子例程foo
,并将引用$obj
作为第一个参数传递,随后是其余参数(@args
)。子例程应该在"Class“包中定义。如果“类”包中没有子例程foo
,将搜索其他包的列表(取自包“类”中的数组@ISA
),并调用找到的第一个子例程foo
。
发布于 2008-12-24 19:54:06
简而言之:它将散列标记为附加到当前包名称空间(以便该包提供其类实现)。
https://stackoverflow.com/questions/392135
复制相似问题