【发布时间】:2013-10-11 17:46:00
【问题描述】:
我正在尝试初始化一个基类和一个子类,而不必复制构造函数。这是我得到的:
tstbase.pm:
package tstbase;
use Exporter qw(import);
our @EXPORT = qw(&new);
my %config = (
"class" => "tstbase",
);
sub new {
my $class = shift;
my $self;
$self->{"name"} = $config{"class"};
bless ($self, $class);
return $self;
};
1;
tstsubclass.pm:
package tstsubclass;
use tstbase;
my %config = (
"class" => "tstsubclass",
);
1;
tst.pl:
#!/usr/bin/perl
use tstsubclass;
my $baseobj = tstbase->new;
print "Testbase ".$baseobj->{"name"}."\n";
my $subobj = tstsubclass->new;
print "Testsubclass ".$subobj->{"name"}."\n";
tst.pl 的输出是
Testbase tstbase
Testsubclass tstbase
但我正在寻找
Testbase tstbase
Testsubclass tstsubclass
当我将“sub new { ..}”例程复制到 tstsubclass.pm 时得到的。有没有办法避免这种开销?我已经尝试了我的 %config / 我们的 %config 和导出 %config 的所有组合,但没有成功。
非常感谢任何帮助
最好, 马库斯
【问题讨论】:
标签: perl class constructor shared