这是对Perl构造函数调用的等效函数调用吗?

时间:2009-09-01 20:04:19

标签: perl oop

我可以有这样的构造函数:

sub create {
  my $class = shift;
  my $self  = {};
  return bless $self,$class;
}

当我创建一个对象时,我可以这样写:

my $object = create Object;

这是:

my $object = Object::create("Object");

唯一相当于该构造函数的调用?

1 个答案:

答案 0 :(得分:5)

不,等效电话是

my $object = Object->create();

如果在没有箭头语法的情况下使用create函数的完全限定名称,则不会通过Perl的OO方法调度,因此任何继承的方法都不起作用。

箭头语法优于“间接”create Object语法。出于这个原因,请参阅this question