#!/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();