in reply to printing out a table X wide and X down without html::template

I've seen one response that uses CGI.pm, but don't forget that the CGI docs explain how to use start_Tr and end_Tr.

use CGI qw/:standard *table *Tr/; ... # decide rows and columns of table ... # e.g. AoA @rows where each element points to an array of cells ... # perhaps each cell could point to a hash of the image data print $query->start_table(...); for my $row (@rows) { print $query->start_Tr(...); for my $cell (@{$row}) { print $query->td(...); # insert image data here } print $query->end_Tr(); } print $query->end_table(); ...

How can you feel when you're made of steel? I am made of steel. I am the Robot Tourist.
Robot Tourist, by Ten Benson