为什么Perl的SUPER呼叫不使用箭头方法?

前端之家收集整理的这篇文章主要介绍了为什么Perl的SUPER呼叫不使用箭头方法?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我注意到,当你调用一个超类的方法时,你需要这样做:
my $self = $class->SUPER::new();

为什么不这样呢?

my $self = $class->SUPER->new();

解决方法

我怀疑因为$class-> SUPER-> new()通常与$class-> SUPER() – > new()相同.但是没有一个$class-> SUPER()函数,它不清楚会返回什么.

另一方面,$class-> Foo :: Bar一直是以全名方式直接调用方法的有效方式,因此使一个特殊的类似东西的SUPER – 更适合. (我怀疑你实际上可以实施SUPER作为一个包,也许在历史上是,我不知道)

PS:看看mro包,和$self> next ::方法.另外,如果您要在Perl中进行严肃的OO工作,请查看Moose.

猜你在找的Perl相关文章