0

我有两个哈希数组:第一个包含当前时间间隔的值,第二个包含前一个时间间隔的值。

 @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 文件的指导。

提前谢谢你

4

2 回答 2

1

另见http://www.perlmonks.org/?node_id=972954

我在那里举了一个例子,如何用 HTML::Template::Compiled 解决这个问题。

基本上你会像这样浏览参数存储:

[%= expr=".AOHPREVIOUS[__index__]{'value'}" %]

或使用经典语法:

<TMPL_VAR expr=".AOHPREVIOUS[__index__]{'value'}" >
于 2012-05-29T22:03:28.727 回答
0

您不能仅使用 HTML::Template 使用 2 个单独的列表来做到这一点。尝试使用 HTML::Template::Expr 来维护将是一场噩梦。尝试将它们折叠成一个列表,在其中合并散列数据。

于 2012-05-29T15:42:18.377 回答