use HTML::Template;
my $template = qq{
};
my %somehash = map(("key$_" => "val$_"), 1..15);
my $maxwidth = 6;
my @tables = ();
my $num_items = 0;
for (keys %somehash) {
my $table_num = int($num_items++ / $maxwidth);
push @{$tables[$table_num]{keycell}}, { key => $_ };
push @{$tables[$table_num]{valcell}}, { val => $somehash{$_} };
}
my $template = HTML::Template->new( scalarref => \$template );
$template->param( TABLE=>\@tables );
print $template->output;