我有两个哈希数组:第一个包含当前时间间隔的值,第二个包含上一个时间间隔的值。
@AoHcurrent=
( { node => "ABC",
link => "DEF",
time => "10:00",
value => "100",
},
{
node => "FGH",
link => "IJK",
time => "10:00",
value => "200",
},
);
@AoHprevious=
( { node => "ABC",
link => "DEF",
time => "09:45",
value => "10",
},
{ node => "FGH",
link => "IJK",
time => "09:45",
value => "50",
},
);
我现在想使用HTML-Template来呈现这些数据。类似的东西:
NODE LINK VALUE
---------------------
ABC DEF 100(10)
FGH IJK 200 (50)
括号中的值表示先前的值。
my %html_template_parameters =
( AOHCURRENT => \@AoHcurrent,
AOHPREVIOUS => \@AoHprevious, );
my $html_template=qq{Report.tmpl};
my $html_output=qq{Report.html};
htmlReport($html_template,$html_output,\%html_template_parameters);
其中htmlReport是一个生成报告的函数
我需要有关定义Report.tmpl文件的指导。
提前谢谢你
答案 0 :(得分:1)
另见http://www.perlmonks.org/?node_id=972954
我举了一个例子,说明如何用HTML :: Template :: Compiled解决这个问题。
基本上你会像这样浏览参数stash:
[%= expr=".AOHPREVIOUS[__index__]{'value'}" %]
或使用经典语法:
<TMPL_VAR expr=".AOHPREVIOUS[__index__]{'value'}" >
答案 1 :(得分:0)
使用HTML :: Template只能使用2个单独的列表。尝试使用HTML :: Template :: Expr进行操作将是一个难以维护的噩梦。尝试将它们折叠到合并哈希数据的单个列表中。