Estoy con monoswim. HTML::Template te puede dar una buena solución.
Hay otros módulos especializados en justo esa tarea: la de
HTML::Template::Associate::DBI que intenta asociar los resultados devueltos por una consulta a la base de datos, a las estructuras que espera HTML::Template. La verdad es que ahorra poco código, pero puede ayudar a dejar el código del programa mucho más sencillo y corto.
También hay frameworks que pueden asociar consultas de bases de datos a ciertos widgets HTML+javaScript, y de hecho les estoy buscando en CPAN desde hace unas semanas, pues yo tengo el mismo problema que tu.