... my $flat_data = [{data=>'A'} , {data=>'B'}, {data=>'C'}, {data=>'D'},{data=>'E'}]; my $columnized_data = columnize($flat_data, 3, "across"); my $tmpl_file = ...; my $tmpl = HTML::Template->new( filename => $tmpl_file, loop_context_vars => 1 ) or die "Creation of template object from $tmpl_file failed."; $tmpl->param( {DATA_LOOP => $columnized_data}); print "Content-type: text/html\n\n", $tmpl->output();