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

Geo*_*Geo 1 oop perl

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

sub create {
  my $class = shift;
  my $self  = {};
  return bless $self,$class;
}
Run Code Online (Sandbox Code Playgroud)

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

my $object = create Object;
Run Code Online (Sandbox Code Playgroud)

这是:

my $object = Object::create("Object");
Run Code Online (Sandbox Code Playgroud)

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

fri*_*edo 5

不,等效的电话是

my $object = Object->create();
Run Code Online (Sandbox Code Playgroud)

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

箭头语法优于"间接" create Object语法.由于这个原因,请看这个问题.