#!/usr/bin/perl use HTML::Template; my $template = HTML::Template->new(filehandle => *DATA); $template->param(title=>"Foo"); @filenames = ([qw(foo bar baz)], [qw(Ein Zwei Drei)], [qw(beer pizza caffeine)], [qw(Vader Sidious Maul Tyrranos)] ); $template->param(dir_loop => [{dir => "Dir1", outter_file_loop => [ {inner_file_loop => [map {filename=>$_}, @{$filenames[0]}]}, {inner_file_loop => [map {filename=>$_}, @{$filenames[1]}]}, ] }, {dir => "Dir2", outter_file_loop => [ {inner_file_loop => [map {filename=>$_}, @{$filenames[2]} ] }, {inner_file_loop => [map {filename=>$_}, @{$filenames[3]} ] }, ] }, ]); print $template->output; __DATA__ # original template here