【发布时间】:2014-09-17 18:11:48
【问题描述】:
我正在编写一个使用 Perl 模块 Module.pm 的 Perl 脚本。
Module.pm 是这样的:
package Module;
use strict;
use warnings;
sub getInfo {
my $self = shift;
#my $var = shift;
if (!$self)
{
my $errmsg = "My ERROR MESSAGE";
return [1, $errmsg];
}
return [1, $self];
}1;
我这样称呼它:
use Module
my $result = Module::getInfo();
但我在第 # 行不断收到一个 FATAL ERROR (at Module.pm) undefined object。这是为什么呢?
此外,如果我删除 getInfo() 子例程中的第一个注释并将另一个参数添加到我的调用行,那么我不会收到相同的错误。为什么?我以为我不必将 Module 对象作为参数发送来调用子例程?
这是一个使用 Perl 5.8.8 的 Linux 服务器。
【问题讨论】:
-
Module.pm did not return a true value at script.pl line 3.— 如果您在构建简化的测试用例时不引入新的错误,这真的很有帮助。 -
抱歉,您不需要加一个 1;到模块的末尾?
-
模块顶部的
package行怎么样? -
你有
use strict;和use warnings;吗?
标签: perl arguments undefined self perl5.8