in reply to convenient wrapper for DBI module

My favourite low-level interface to databases is DBIx::Simple. It's interface is simpler and more consistent than DBI, and it makes simple tasks very simple indeed.

To get XML back from a database, I have used XML::Generator::DBI in the past, with good results.

And finally, if you want a higher-level interface, an ORM actually, then these days DBIx::Class seems to be the most popular choice.