my %tab = ( abc => [4, 20], def => [9, 20000], ghi => [16, 200000] ); #### #! /usr/bin/perl -w use strict; use CGI; my $q = new CGI; my %tab = ( abc => [4, 20], def => [9, 20000], ghi => [16, 200000] ); print $q->table( {-border=>"1"}, $q->TR([ map { $q->td( $_ ) . $q->td( $tab{$_}->[0] ) } sort keys %tab ]) ); #### abc4 20 def9 20000 ghi16 200000 #### my $flipflop = 0; print $q->table( {-border=>"1"}, $q->TR([ map { ++$flipflop % 2 ? $q->td( {-rowspan=>"2"}, $_ ) . $q->td( $tab{$_}->[0] ) : $q->td( $tab{$_}->[1] ) } map { $_, $_ } sort keys %tab ]) );