My also be useful to use a "better" SQL statement, and "miss" the conversion in Perl. So instead of:
# grab the stuff from the database
my $sth = $DBH->prepare('
select title, artist, album, year
from songs
');
$sth->execute();
# prepare a data structure for HTML::Template
my $rows;
push @{$rows}, $_ while $_ = $sth->fetchrow_hashref();
Use:
# grab the stuff from the database
my $rows = $DBH->selectall_arrayref('
select title, artist, album, year
from songs', Slice => {} );
This creates an array of hashrefs directly - see the DBI docs for more details.