[% TimeData.RemainingDays.$status.$percent %] #### #!/usr/bin/perl -w use strict; use Template; my $vars; $vars->{Stati} = [ qw(NEW ASSIGNED) ]; $vars->{UtilRatioPercent} = [ qw(25 50 75) ]; for (1..3) { my $item; for my $status (@{$vars->{Stati}}) { for my $percent (@{$vars->{UtilRatioPercent}}) { $item->{RemainingDays}{$status}{$percent} = int(rand 42); } } push @{ $vars->{ReturnValues} }, $item; } #use Data::Dumper; print Dumper $vars; exit; # debug my $templ = q{ [% FOREACH status IN Stati %] [% FOREACH percent IN UtilRatioPercent %] [% FOREACH TimeData IN ReturnValues %] Remaining ([% status %]-[% percent %]): [% TimeData.RemainingDays.$status.$percent %] days [% END %] [% END %] [% END %] }; my $tt = Template->new(); $tt->process(\$templ, $vars) or die $tt->error(); #### Remaining (NEW-25): 0 days Remaining (NEW-25): 29 days Remaining (NEW-25): 11 days Remaining (NEW-50): 29 days Remaining (NEW-50): 4 days Remaining (NEW-50): 14 days Remaining (NEW-75): 23 days Remaining (NEW-75): 23 days Remaining (NEW-75): 27 days Remaining (ASSIGNED-25): 3 days Remaining (ASSIGNED-25): 5 days Remaining (ASSIGNED-25): 13 days Remaining (ASSIGNED-50): 3 days Remaining (ASSIGNED-50): 23 days Remaining (ASSIGNED-50): 3 days Remaining (ASSIGNED-75): 14 days Remaining (ASSIGNED-75): 1 days Remaining (ASSIGNED-75): 37 days