my $ht = new HTML::Template(filename=>'main.tmpl'); my $db_data=print(); $ht->params(db_data=>$db_data,%stuff); print $ht->output; sub print() { my $ht = new HTML::Template(filename=>'database_info.tmpl'); @foo=$dbh->do("select * from *"); # ok so it's not even vaugely legal. do yer own db code $ht->params(dbstuff=>@foo); return $ht->output; #probably not optimal }