2012-12-14 40 views
0

我无法执行CGI中的HTML :: Template功能。使用HTML :: Template模块的问题

我下面一个简单的教程,我发现在这里:http://metacpan.org/pod/HTML::Template

我我在家里路径test.tmpl服务器上创建一个新文件。

我创建了一个名为frt.cgi一个新的文件...(是这里的问题?它应该是一个不同的文件扩展??)

#!/usr/local/bin/perl -w 
use HTML::Template; 

# open the html template 
my $template = HTML::Template->new(filename => '/test.html'); 

# fill in some parameters 
$template->param(HOME => $ENV{HOME}); 
$template->param(PATH => $ENV{PATH}); 

# send the obligatory Content-Type and print the template output 
print "Content-Type: text/html\n\n", $template->output; 


我已经修改了一号线反映我的主机提供的perl程序路径。我不知道-w是什么,我只是知道我已经尝试过,没有它。此外,我已经尝试改变代码有点像这样:

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


我搜索...
https://stackoverflow.com/search?q=HTML%3A%3ATEMPLATE+&submit=search
https://stackoverflow.com/search?q=HTML%3A%3ATEMPLATE
https://stackoverflow.com/search?q=HTML%3A%3ATEMPLATE+PERL&submit=search

但我仍然没有看到回答。 我甚至在谷歌搜索.TMPL编码,因为我认为可能需要一些特殊类型。请帮忙。

+0

.tmpl文件只是文本文件。 -w只是打开警告。这相当于'使用警告;'如果您发布了错误消息,这将有所帮助。你确定安装了HTML :: Template吗?这不是一个标准模块。 – Cfreak

+1

@Cfreak [不完全等同](http://perldoc.perl.org/perllexwarn.html)。 – melpomene

回答

0

如果在您的服务器日志看,你可能会看到一个错误信息的线沿线的:

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

您需要提供的文件系统,而不是一个URI相对于上的路径生成的文件。

+0

不仅如此,但我只注意到他引用test.html,但他的模板名称是test.tmpl – Cfreak

+0

对不起,我已经改变了这个代码,以至于它仍然会对cgi上的test.html进行更改和更新。此外,我刚刚检查了我的已安装的模组,并确实在那里看到了HTML模块。 – DieVers

+0

K因此我将不正确的行修改为:my $ template = HTML :: Template-> new(filename =>'httpcolon // csvlife。COM/test.tmpl'); – DieVers

0

首先,您可能指定了错误的路径 - 将/test.html更改为test.html。 此外,还可能有在你的系统中没有$ ENV {HOME}变量,以便设立标志die_on_bad_params 0:

my $template = HTML::Template->new(
filename => 'test.html', 
die_on_bad_params => 0, 
); 

而且,不要忘记,以纪念你的Perl与chmod 755文件为可执行。

选项-w让Perl启用警告,所以之后没有必要写use warnings;。 您可以查阅一下Perl的命令行选项做用模块B :: Deparse,像这样($^W变量来禁用/启用警告):

perl -w -MO=Deparse -e "print;" 

这将打印:

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

'chmod 777' ??? Yeeks!当你显然不知道自己在做什么时,不要提供建议。 (和不,不要使用'-w','使用警告'。) – pavel

+0

好的,chmod 755 :) – Basil