use strict; use warnings; use Template; my %vars; $vars{list} = [ qw/apple pear cherry orange kiwi banana lemon lime /]; $vars{cols} = 3; $vars{end} = $#{$vars{list}}; print "$vars{end}\n"; #### TEMPLATE INLINE FOR EXAMPLE my $template = qq| [% cnt = 0 %] [% FOREACH item = list %] [% IF !(cnt % cols) %][% END %] [% IF ((cnt % cols) == (cols - 1) or (cnt == end)) %][% END %] [% cnt = cnt + 1 %] [% END %]
[% item %]
|; my $tt = Template->new(); $tt->process(\$template,\%vars) || die "Template process failed: ", $tt->error(), "\n";