Treat them as Lists of Hashes, even if it's only one hash in the list:
my $VAR1 = {
'apptimeupdated' => '20040315145142',
'apptype' => [{
'apt_defstatus' => [{
'name' => 'Pending',
}],
'value' => '50',
}],
};
my $tmpl = HTML::Template->new(filehandle => \*DATA);
$tmpl->param($VAR1);
print $tmpl->output;
__DATA__
<tmpl_var apptimeupdated>
<tmpl_loop apptype>
<tmpl_var value>
<tmpl_loop apt_defstatus>
<tmpl_var name>
</tmpl_loop>
</tmpl_loop>
I hate to say it ... but i would use TT here instead, since it works better with your existing data structure:
my $VAR1 = {
'apptimeupdated' => '20040315145142',
'apptype' => {
'apt_defstatus' => {
'name' => 'Pending',
},
'value' => '50',
},
};
my $tt = Template->new;
$tt->process(\*DATA, $VAR1) || die $tt->error();
__DATA__
[% apptimeupdated %]
[% apptype.value %]
[% apptype.apt_defstatus.name %]
OK ... so i don't hate to say it. TT rocks. ;)