下面是一個最小化的示例,其中,I有OA.pm
(父對象),OB.pm
子對象,和轉輪腳本:SUPER是未定義的,當我有多重繼承
對象OB:
package OB;
use OA;
require Exporter;
@ISA = (Exporter, OA);
@EXPORT =();
sub new {
my $class = shift;
print $class->SUPER;
bless {}, $class;
};
1;
對象OA:
package OA;
require Exporter;
@ISA = (Exporter);
@EXPORT =();
sub new {
bless {}, shift;
};
1;
和流道:
#!/usr/bin/perl
use strict;
use warnings;
use OB;
print OB->new;
當我運行它,我得到:
Can't locate object method "SUPER" via package "OB" at OB.pm line 10.
1)什麼可能是錯誤的?
2)如果我有多個家長,SUPER會指出什麼?
3)是use OA
強制性的?
請注意,您不需要從Exporter繼承。你只需要'使用Exporter qw(import);' – ikegami