0

ハッシュの 2 つの配列があります。1 つ目は現在の時間間隔の値を含み、2 つ目は前の時間間隔の値を含みます。

 @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 に答える