Perl 使用HTML::Template模块时出现问题

Perl 使用HTML::Template模块时出现问题,perl,cgi,Perl,Cgi,我无法在CGI中执行HTML::Template函数 下面是我在这里找到的一个简单教程: 我在服务器上的主路径中创建了一个新文件 我创建了一个名为frt.cgi的新文件。。。(这就是问题所在吗?是否应该是不同的文件扩展名??) 我修改了第1行,以反映我的主机为perl提供的程序路径。我不知道-w是什么,我只知道我试过这个有没有。我也尝试过这样修改代码: use warnings; use strict; use CGI qw(:standard); use HTML::Template; 我

我无法在CGI中执行HTML::Template函数

下面是我在这里找到的一个简单教程:

我在服务器上的主路径中创建了一个新文件

我创建了一个名为frt.cgi的新文件。。。(这就是问题所在吗?是否应该是不同的文件扩展名??)


我修改了第1行,以反映我的主机为perl提供的程序路径。我不知道-w是什么,我只知道我试过这个有没有。我也尝试过这样修改代码:

use warnings;
use strict;
use CGI qw(:standard);
use HTML::Template;

我已经搜索了…



但我仍然看不到答案。
我甚至在google上搜索.TMPL编码,因为我认为可能需要一些特殊类型的编码。请帮忙

如果查看服务器日志,您可能会看到一条错误消息,内容如下:

HTML::Template->new() : Cannot open included file /test.html : file not found.

您需要提供文件系统上的路径,而不是与生成的文档相关的URI。

首先,您可能指定了错误的路径-将/test.html更改为test.html。 此外,您的系统中可能没有$ENV{HOME}变量,因此将_bad_参数上的标志die_设置为0:

my $template = HTML::Template->new(
filename => 'test.html',
die_on_bad_params => 0,
);
另外,不要忘记将Perl文件标记为chmod755可执行文件

选项-w使Perl启用警告,因此编写
使用警告没有意义之后。
您可以使用模块B::Deparse检查Perl命令行选项的功能,如($^W变量禁用/启用警告):

这将打印:

BEGIN { $^W = 1; }
print $_;

.tmpl文件只是文本文件-w只是打开警告。这相当于
使用警告如果您发布了一条错误消息,这将有所帮助。您确定已安装HTML::Template吗?这不是一个标准模块。@Cfreak。不仅如此,我还注意到他正在引用test.html,但他的模板名是test.tmpls。很抱歉,我对这段代码做了太多更改,以至于cgi上仍然显示test.html将更改和更新。另外,我刚刚检查了我安装的mods,我确实在那里看到了HTML模块,所以我修改了不正确的行:my$template=HTML::template->new(filename=>'httpcolon//csvlife.com/test.tmpl')@DieVers—文件系统上的文件名,而不是HTTP URI。这是我在编辑它时在路径中显示的:/home/modfresh/public_html/test.tmpl那么我是将整个内容放在“”中还是将/test.tmpl也放在thanx中以获得您的帮助
chmod 777
???耶!当你显然不知道自己在做什么时,不要给出建议。(不,不要使用
-w
使用警告
perl -w -MO=Deparse -e "print;"
BEGIN { $^W = 1; }
print $_;