我正在尝试扩展我公司特定的BaseClass(Acme :: BaseClass)但每当我:
package Manager;
use strict;
use warnings;
use base qw(Acme::BaseClass)
sub new { ...
它给了我错误:
Base class package "Acme::BaseClass" is empty.
但在我的脚本中,我可以使用该软件包:
use Acme::BaseClass;
my $bc = BaseClass->new("myname");
$bc->prnt(); # prints "myname"
exit;
这是我第一次尝试在Perl中继承,所以也许我错过了一些基本的东西?
注意:
我试图使用旧学校:
BEGIN { 需要Acme :: BaseClass; 推@ISA,qw(Acme :: BaseClass); }
我不确定如何正确地做这些。希望这是我想念的简单事情。如果没人能回答,我会添加更多细节。
答案 0 :(得分:14)
从您的代码示例来看,听起来Acme/BaseClass.pm
中有类似的内容
package BaseClass;
....
1;
它需要
package Acme::BaseClass;
....
1;
答案 1 :(得分:0)
可能子类无法找到BaseClass模块,但您的测试脚本可以。检查@INC是否设置正确,以便两者都可以找到您的模块。