#!/usr/bin/perl use strict; use warnings; use HTML::Template; # some fruits my $fruits = [ { fruit => "banana", properties => [ {where_from => 'europe', size=> 'small'}, {where_from => 'africa', size=> 'large'}, ] }, { fruit => "apple", properties => [ {where_from => 'asia', size=> 'medium'}, {where_from => 'america', size=> 'large'}, ] }, ]; # and now let's add another fruit push @$fruits, { fruit => 'strawberry'}; # let us add some properties ${fruits}->[2]->{properties} = [ {where_from => 'europe', size=> 'small'}, {where_from => 'new zealand', size=> 'huge'}, ]; my $tmpl = HTML::Template->new( filehandle => \*DATA ); $tmpl->param( fruits => $fruits ); print $tmpl->output; __DATA__