如何在不为每个模板创建单独文件的情况下使用HTML :: Template?

时间:2013-05-18 15:51:48

标签: perl perl-module

使用HTML::Template的正常方法如下:

主文件:

my $template = HTML::Template->new(filename => 'secret.tmpl');
$template->param(SECRET_MESSAGE => $bar);
print $template->output;

secret.tmpl:

<h1>Hello <TMPL_VAR NAME=SECRET_MESSAGE></h1>

问题是,我可以使用该模板引擎而无需创建单独的文件 - 即,即时生成模板的内容吗?

或许可以使用任何其他模块吗?

1 个答案:

答案 0 :(得分:1)

是的,可以使用HTML::Template:它的constructor适用于存储在标量(整个文本块)或数组(逐行)中的模板。像这样:

my $t_from_scalar = HTML::Template->new(
    scalarref => $ref_to_template_text,
    option    => 'value',
);

my $t_from_array_of_lines = HTML::Template->new(
    arrayref => $ref_to_array_of_lines,
    option    => 'value',
);

实际上,这些情况有两种特定的构造方法:

my $t_from_scalar = HTML::Template->new_scalar_ref(
  $ref_to_template_text, option => 'value');

my $t_from_array_of_lines = HTML::Template->new_array_ref(
  $ref_to_array_of_lines, option => 'value');