I really wanted to like Class::DBI; but if you actually use your database relationally, it gets in the way too much.
Yes, this is actually the biggest of the wrinkles I was talking about in my node. Complex operations end up being processed in the client instead of within the database, as it should be.
(...) anything that involves multiple joins, f.ex., is at best difficult to express. I instead frequently found myself grepping and mapping through lists of result objects; which is just a waste.
Precisely. And although I haven't looked into this yet, I am quite sure it is possible to express these relations and let the object hierarchy sort the proper SQL statements to generate so as to minimize the amount of data fetched.
I have the impression that Class::DBI is a step in the right direction, but more control is needed. I think that improving the statement generation would be a big step.
-lem, but some call me fokat