perl TemplateToolkit - 无法通过包找到对象方法“new”

时间:2010-04-12 09:31:06

标签: perl templates cgi ubuntu-9.10

我继承了一个基于perl的web项目,我正在尝试建立一个本地测试服务器,因此可以在项目内部进行更改。

服务器架构 Ubuntu 9.10 php 5.2.10 mysql 5.1.37 perl 5.10.0-24ubuntu4

安装了所有依赖模块和软件包,例如DateTime.pm,TemplateToolkit.pm,但运行该应用程序会抛出以下错误消息:

无法通过包“模板”找到对象方法“new”(也许你忘了加载“模板”?)在../lib//KPS/TemplateToolkit.pm第51行

这引用的代码块是:

sub new {
    return Template->new(
        INCLUDE_PATH => $KPS::Config::templatepath,
        ABSOLUTE     => 1,
        DEBUG        => 1,
    );
}

如果有人能够阐明这一点或指出我正确的方向,我们将不胜感激。

由于

Simnom

2 个答案:

答案 0 :(得分:7)

您需要首先加载Template Toolkit,其中包含:

use Template;

要确保在此系统上正确安装了Template :: Toolkit,您可以从可以运行的控制台

perl -MTemplate -e0

如果返回没有错误,则表示Template.pm wsa成功加载;如果没有,它会给你一个错误“无法在@INC中找到Template.pm ......”。

答案 1 :(得分:0)

要检查的其他事项是因为即使您没有正确设置,接受的答案测试也可能成功;确保模块中的包声明具有正确的路径。方案如下:

你做

use a::b;
...
a::b->new();

然后在b.pm你做

package b;

你可能会唠叨一会儿直到你意识到自己需要做什么

package a::b;