为什么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.

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...