需要有关扩展我的Perl模块的帮助

时间:2011-03-08 21:18:03

标签: perl perl-module extend

我正在尝试扩展我公司特定的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); }

我不确定如何正确地做这些。希望这是我想念的简单事情。如果没人能回答,我会添加更多细节。

2 个答案:

答案 0 :(得分:14)

从您的代码示例来看,听起来Acme/BaseClass.pm中有类似的内容

package BaseClass;

....

1;

它需要

package Acme::BaseClass;

....

1;

答案 1 :(得分:0)

可能子类无法找到BaseClass模块,但您的测试脚本可以。检查@INC是否设置正确,以便两者都可以找到您的模块。