I have used both Class::DBI and DBIx::Class within the framework of Catalyst. As DBIx::Class has a more active and lively community, I prefer it, even when its API is not yet fully settled (it hasn't yet reached version 1 - or one could say it is version "2" of Class::DBI).
in reply to Class::DBI vs. DBIx::Class
For smaller non-Catalyst programs I prefer to directly use DBI itself as setting up the OO-framework takes some time.
"If you have four groups working on a compiler, you'll get a 4-pass compiler." - Conway's Law