use Template; use strict; use warnings; my $t = Template->new; my @nodes = ( {name => "one"}, {name => "two", children => [ {name => "red"}, {name => "green"} ] }, {name => "three", children => [ {name => "blah", children => [ {name => "yakko" }, {name => "wacko" }, {name => "dot" } ] } ] } ); $t->process("rec.tt", { nodes => \@nodes } ); #### [% VIEW nested_list %] [% BLOCK list %] [% END %] [% END %] [% nested_list.print(nodes) %]