# This is free hand, please ignore typos: my $templateContents = { hosts => { name = '[% host.name %]', }, ... } #### use strict ; use warnings ; use Template ; my $file = 'template.xml.tt'; my $vars = { hosts => [ { name => "[% host.name %]", } ], }; my $template = Template->new(); $template->process($file, $vars) || die "Template process failed: ", $template->error(), "\n" ; #### [% FOREACH host IN hosts %] [% END %] ####