在Perl HTML :: Template :: Compiled中使用哈希

时间:2016-07-08 14:07:32

标签: perl hash cgi

无法显示哈希键和值。

代码与http://search.cpan.org/~tinita/HTML-Template-Compiled-1.003/lib/HTML/Template/Compiled.pm

中的示例类似
use HTML::Template::Compiled;

my $template = HTML::Template::Compiled->new(filename => '/usr/share/nginx/status.tmpl');

$template->param(
    letters => {
        1 => { letter =>'b' },
        2 => { letter =>'a' },
        3 => { letter =>'c' },
    }, 
);

print($template->output);

模板:

<html>
<head><title>Test Template</title></head>
<body>
    <%each letters%>
        <%set_var val value=__value__ %>
        <%= __key__ %>=<%= $val.letter %>
    <%/each%>
</body>
</html>

结果是&#39; = = =&#39;。因此,__key____value__根本没有印刷。即使没有嵌套的哈希,也会发生这种情况,但这个示例代码是文档页面中最简单的代码。

此代码有什么问题?

1 个答案:

答案 0 :(得分:0)

这是loop_context_vars选项。

my $template = HTML::Template::Compiled->new(loop_context_vars => 1, filename => '/usr/share/nginx/status.tmpl');