Although it's fairly easy to write a series of "print '<TD>', $_->[0], '</TD>'" statements to populate table TD elements with the contents of an array, it's not necessarily obvious how to do it using the more formal CGI syntax.

However, davidrw enlightened me on the use of map for such cases.

use CGI qw(:standard); @links = ( ['CPAN', 'http://cpan.perl.org'], ['Active State', 'http://www.activestate.com'], ['Perl Monks', 'http://www.perlmonks.org'] ); print start_html('Perl Links'); print table({-border=>1}, Tr([ th(['Site', 'URL']), map{ td([$$_[0], a({-href=>$$_[1]},$$_[1])]) }@links ]) ); print end_html();