【发布时间】:2012-07-04 11:08:25
【问题描述】:
我正在尝试使用 Perl 模块 HTML::Template 并且根据文档,它说您可以在其标记周围使用 HTML cmets 而不是大于/小于,但事实并非如此为我工作。
来自 HTML::Template 的 perldoc
如果您热衷于有效 HTML,并且希望您的模板符合有效的 HTML 语法,您可以选择以 HTML cmets 的形式键入模板标签。 这可能对想要验证其模板的 HTML 作者有用 HTML::Template 处理之前的 HTML 语法,或使用 DTD 精通编辑工具的人。
<!-- TMPL_VAR NAME=PARAM1 -->
当我尝试这个时,我会在我的 apache 日志中收到这些消息:
[2012 年 7 月 3 日星期二 19:24:23] [错误] [客户端 ::1] HTML::模板:尝试设置 不存在的参数 'fname' - 此参数名称与任何声明都不匹配 在模板文件中: (die_on_bad_params => 1) 在 /var/www/cgi-bin/form.cgi 第 90 行, 推荐人:....getcontactinfo.html
将选项die_on_bad_params => 0 设置为HTML::Template->new 方法似乎允许模板名称的注释格式起作用,任何人都可以确认这是完成此操作的正确方法吗?
编辑#1
这是一些实际的代码:
来自我的 .html 模板文件
<tbody>
<tr> <td>First Name: </td> <td><!-- TMPL_VAR NAME=FNAME --> </td> </tr>
<tr> <td>Name: </td> <td><!-- TMPL_VAR NAME=NAME --> </td> </tr>
<tr class="alt"> <td>Email: </td> <td><!-- TMPL_VAR NAME=EMAIL --> </td> </tr>
<tr> <td>Affiliation: </td> <td><!-- TMPL_VAR NAME=AFFILIATION --> </td> </tr>
来自我的 .cgi 脚本
my $template = HTML::Template->new(filename => '/var/www/html/acknowledge.html', die_on_bad_params => 0);
$template->param(FNAME => $firstName);
$template->param(NAME => $firstName . " " . $lastName);
$template->param(EMAIL => $email);
$template->param(AFFILIATION => $affiliation);
【问题讨论】:
-
请出示您的实际代码。