Perl的"bless" 到底是做什么的?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (57)

我了解到在Perl中的类的“新”方法中使用了“BACH”关键字:

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

但是,"bless"到底是在对哈希引用做什么呢?

提问于
用户回答回答于

总的来说,bless将对象与类关联。

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

当您调用一个方法时,$object,Perl知道要搜索该方法的包。

如果省略了第二个参数,如您的示例所示,将使用当前包/类。

您的示例可以编写如下:

sub new { 
  my $class = shift; 
  my $self = { }; 
  bless $self, $class; 
} 
用户回答回答于

扫码关注云+社区