in reply to Abstracting DBI

It's possible you'd like to try DBIx::Class. It has a learning curve and assumes the developer already understands quite a bit about DBI best practices. It also repays good DB design while making working with code for bad schemata a bit difficult, or rather: no easier but adding a layer on top of the problem.