我正在尝试使用该Perl
模块HTML::Template
,根据文档,它说您可以HTML
在其标记周围使用注释而不是大于/小于,但它对我不起作用。
来自 HTML::Template 的 perldoc
如果您对有效的 HTML 很狂热,并且希望您的模板符合有效的 HTML 语法,您可以选择以 HTML 注释的形式键入模板标签。这可能对希望在处理 HTML::Template 之前验证其模板的 HTML 语法或使用 DTD 精通编辑工具的 HTML 作者有用。
<!-- TMPL_VAR NAME=PARAM1 -->
当我尝试这个时,我在我的 apache 日志中收到这些消息:
[2012 年 7 月 3 日星期二 19:24:23] [错误] [client ::1] HTML::Template : 尝试设置不存在的参数 '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);