http://www.perlmonks.org?node_id=194505


in reply to A question regarding HTML::Template, tables, and loops

There are any number of ways to solve this problem with HTML::Template, but here's how I'd do it. Here's the script:

use HTML::Template; my $template = HTML::Template->new(filename => "test.tmpl"); my @data = (1 .. 30); my $items_per_row = 5; my $x = 0; my @loop; foreach (@data) { my %row = ( data => $_ ); $row{break} = 1 unless $x % $items_per_row or $x == 0; push @loop, \%row; $x++; } $template->param(loop => \@loop); print $template->output();

And the corresponding template:

<table> <tr> <tmpl_loop loop> <tmpl_if break></tr><tr></tmpl_if> <td><tmpl_var data></td> </tmpl_loop> </tr> </table>

Does that help?

-sam