my @headings = ('Foo','Bar'); my @rows = th(\@headings); my @row1 = (td({-rowspan=>'2'},'foo1')); push(@row1,td('bar1')); push(@rows,@row1); my @row2 = (td(['','bar2'])); push(@rows,@row2); my @row3 = (td({-rowspan=>'2'},'foo2')); push(@row3,td('bar3')); push(@rows,@row3); my @row4 = (td(['','bar4'])); push(@rows,@row4); print start_html('foobar'), table({-border=>'1'},Tr(\@rows)), end_html;