Perl Can';t定位对象方法“;子“uquot;via package";测试::基类::基类“;

Perl Can';t定位对象方法“;子“uquot;via package";测试::基类::基类“;,perl,perl-module,Perl,Perl Module,我有一个基类包和另一个属于同一个包的module Sub.pm 在我的示例程序中,当我调用sub_方法时,它将以下错误打印为: 无法通过C:/Users/pavan.t/workspace/Simple/ExampleOnBase.pl第12行中的包“Test::Base::BaseClass”找到对象方法“sub_2;” 如果使用包Foo::Bar::Baz,perl将在INC路径中的某处搜索文件Foo/Bar/Baz.pm。 您的脚本使用Test::Base::BaseClass,因此它会查

我有一个基类包和另一个属于同一个包的module Sub.pm

在我的示例程序中,当我调用
sub_
方法时,它将以下错误打印为:

无法通过C:/Users/pavan.t/workspace/Simple/ExampleOnBase.pl第12行中的包“Test::Base::BaseClass”找到对象方法“sub_2;”


如果使用包
Foo::Bar::Baz
,perl将在
INC
路径中的某处搜索文件
Foo/Bar/Baz.pm
。 您的脚本使用
Test::Base::BaseClass
,因此它会查找
BaseClass.pm
。没有定义
sub\uu

您应该能够添加
use Sub
,无论其中定义了哪个包


但是,包和文件名应该(不必如此,但更好!)相似。

应该是
sub-new{return bless{hello=>@[1],person=>@[2]},$[0];}
BaseClass.pm

package Test::Base::BaseClass;

sub new {

    return bless {hello=>@_[0],person=>@_[1]} , __PACKAGE__;    
}

sub hello {
    print "hello";
}

sub person {
    my $self = shift;
    return $self->{person};
}

1;

Sub.pm
package Test::Base::BaseClass;


sub sub_ {

    my $self= shift;
    print __PACKAGE__;

}

1;

example.pl

use lib 'C:/Users/pavan.t/workspace/Simple';
use Test::Base::BaseClass;
$sub =  Test::Base::BaseClass->new('pavan','pavan');

print $sub->person;
print $sub->sub_