Is there any specific reason you need to squeeze everything into a single hash key/template variable? Why not create a proper nested data structure, which you can then access something like this in the template
[% TimeData.RemainingDays.$status.$percent %]
To elaborate, here's some sample code:
#!/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.RemainingDay +s.$status.$percent %] days [% END %] [% END %] [% END %] }; my $tt = Template->new(); $tt->process(\$templ, $vars) or die $tt->error();
Output (superfluous whitespace removed):
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
In reply to Re: Perl Template::Toolkit combining variables?
by Anonyrnous Monk
in thread Perl Template::Toolkit combining variables?
by Frederic_S
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |