in reply to Help with nested loop in HTML::Template
In your script you have table_data_begin_row and in your template you have table_data_begin_loop which may be part of the problem.
That particular var is hard coded into your script so you could put it in the template (also table_data_close_row).
I can't run your script to know if that is only snag but here's a snippet showing how I might do it. Notice the use of Data::Dumper which is excellent for these type of problems.
output (Dumper output followed by H::T output):#!/bin/perl5 use strict; use warnings; use Data::Dumper; use HTML::Template; $Data::Dumper::Indent = 1; $Data::Dumper::Sortkeys = 1; my $data = [ [qw{one two three}], [qw{four five six}], [qw{seven eight nine}], ]; my @outer_loop; for my $outer (@{$data}){ my @inner_loop; for my $inner (@{$outer}){ push @inner_loop, {data => $inner}; } push @outer_loop, {inner_loop => \@inner_loop}; } print Dumper \@outer_loop; my $param = {outer_loop => \@outer_loop}; my $tmpl = do{local $/;<DATA>}; my $t = HTML::Template->new(scalarref => \$tmpl) or die qq{tmpl obj fa +iled\n}; $t->param($param); print $t->output; __DATA__ <TMPL_LOOP NAME=outer_loop> --------------------------- <TMPL_LOOP NAME=inner_loop> <TMPL_VAR NAME=data> </TMPL_LOOP> </TMPL_LOOP>
$VAR1 = [ { 'inner_loop' => [ { 'data' => 'one' }, { 'data' => 'two' }, { 'data' => 'three' } ] }, { 'inner_loop' => [ { 'data' => 'four' }, { 'data' => 'five' }, { 'data' => 'six' } ] }, { 'inner_loop' => [ { 'data' => 'seven' }, { 'data' => 'eight' }, { 'data' => 'nine' } ] } ]; --------------------------- one two three --------------------------- four five six --------------------------- seven eight nine
|
|---|