我得到了:
Can't call method "test" without a package or object reference at 4.pl line 6.
我不知道为什么,任何想法?
Users.pm
package Users;
sub new{
print "Created\n";
}
sub test{
print "a";
}
1;
Test.pl
BEGIN {
push @INC,"/home/baddc0re/Desktop/perl_test/";
}
use Users;
$user = new Users();
$user->test();
答案 0 :(得分:3)
Perl中的对象构造不起作用。构造函数必须显式返回已使用the bless
function创建的对象的引用;实际上,在Perl中,这是定义构造函数的原因,因为“new
”只是子例程的另一个名称,与C ++不同,调用名为new
的函数不会强制Perl创建宾语。在此特定示例中,new
只返回print
的返回值,这可能只是某个真值,并且尝试在此值上调用test
方法失败,因为它没有'祝福任何一个班级。
答案 1 :(得分:3)