DBIx::Class and Class::DBI are the same kind of thing – ORMs that layer an OO abstraction over the database. They try to create a model for you with minimal effort on your side, but in so doing they keep very close to the structure of the database, and yet make it difficult to formulate non-trivial queries.
I prefer to write my model from scratch, talking SQL to the database directly. DBIx::Simple does not add any abstractions over using DBI directly – it just puts a cleaner interface on top of it, so you get to keep your sanity.
Makeshifts last the longest.