# -------------------------------------------------------
# the information is centralized for other uses, such as
# printing headers:
print "
";
foreach my $info ( @COL_INFO )
{
# skip hidden fields
next if $info->{hide};
# build up opening tag
my $header = "| {width} )
{
$header .= qq| width="$width"|;
}
$header .= ">";
print( $header .
escapeHTML( $info->{title} ) .
" | \n" );
}
print "
\n";
# -------------------------------------------------------
# then for each row:
while ( my $cur = $sth->fetch() )
{
# if necessary, you can construct a hash using
# whatever keys you want, not just db column names:
my %row;
@row{ @COL_NAMES } = @$cur;
# or maybe just pick out one value
my $foo_id = $cur->[ $COL_INDEX{foo_id} ];
# formatting the output is now easier, too:
print qq|\n|;
foreach my $info ( @COL_INFO )
{
my $cell = "| {align};
$cell .= ">";
if ( my $gen = $info->{gen} )
{
$cell .= $gen->( $cur );
}
else
{
my $ix = $COL_INDEX{ $info->{name} };
$cell .= escapeHTML( $cur->[$ix] );
}
$cell .= " | \n";
print $cell;
}
print "
\n";
}