前端之家收集整理的这篇文章主要介绍了
为什么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.
原文链接:https://www.f2er.com/Perl/172561.html