We've had a module for that called Class::DBI for nearly three years. :-)
The greatest part about it is that you can declare relationships between classes/tables by indicating that a certain column in your table either is a foreign key (has_a) or that your table's primary key is referenced from another one (has_many). All the joins will then happen behind the scenes and you can use simple accessors to navigate your relations.
There is also about half a million ways to specialize the behaviour of classes and instances in particular ways.
Kake Pugh wrote an article on O'Reilly's Perl.com about How to avoid writing code using that module and a powerful templating system.