HTML-шаблон - Array of Hash

У меня есть два массива хэшей: первый содержит значения для текущего временного интервала, а второй содержит значения для предыдущего временного интервала.

 @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-шаблон для представления этих данных. Что-то вроде:

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.

Заранее спасибо

2 ответа

См. также http://www.perlmonks.org/?node_id=972954

Я привел пример, как это можно решить с помощью HTML::Template::Compiled.

По сути, вы должны перемещаться по параметру stash следующим образом:

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

или с классическим синтаксисом:

<TMPL_VAR expr=".AOHPREVIOUS[__index__]{'value'}" >

Вы не можете сделать это с 2 отдельными списками только с HTML::Template. И пытаться сделать это с помощью HTML::Template::Expr было бы кошмаром. Попробуйте свести их в один список, где хеш-данные объединяются.

Другие вопросы по тегам