我了解一个人在类的“new”方法中使用了Perl中的“bless”关键字:

sub new {
    my $self = bless { };
    return $self;
}

但是,“祝福”到底对那个哈希引用做了什么?

最佳答案

通常,bless将对象与类相关联。

package MyClass;
my $object = { };
bless $object, "MyClass";

现在,当您在$object上调用方法时,Perl知道要搜索该方法的软件包。

如果省略第二个参数(如您的示例),则使用当前的包/类。

为了清楚起见,您的示例可能编写如下:
sub new {
  my $class = shift;
  my $self = { };
  bless $self, $class;
}

编辑:有关更多详细信息,请参见kixx的好answer

关于perl - Perl的 “bless”到底做什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/392135/

10-09 00:06