I'm sorry, I'm not entirely sure what to do to be able to supply sample data. This runs through several different modules, each one doing some other thing, and I don't know how to simplify it enough to show here.
The immediate calling mechanism comes from the superclass, and looks like this, with the $sth coming from another module that handles the database querying:
my @row;
# construct a table header; store in @row
push (@row, $self->_get_table_header(\@order));
# construct each table row; add to @row
while (my $ref = $sth->fetchrow_hashref()) {
# clean this up with named parameter calls?
push (@row, $self->_get_table_row(\@order, $ref, $book,
$rowcolor));
$rowcolor = ($rowcolor eq "lightrow" ? "darkrow" : "lightrow");
}
$sth->finish();
print table ({width=>"95%"},-cellspacing=>"0"},@row);