This recent question on doing ORM in Perl proved somewhat timely, as I was just looking at Perl ORMs yesterday. Unfortunately, I was not particularly satisfied with what I found:
They all appear (at least in their documentation) to focus primarily on the relational side of the object-relational divide. "Use our ORM to provide an OO(ish) interface to your relational database."
But I'm not a database programmer who wants to invoke methods instead of writing SQL. I'm an OO programmer with a need to persist objects.
Are there any good Perl ORMs that openly support objects that have more complex behaviours than just CRUD operations? Things like inheritance and properties which aren't just a wrapper around a database field?
I'm sure that this is possible with Class::DBI, DBIx::Class, Rose::DB::Object, and all the smaller players, but, in every case but one, the docs that I've been able to find don't even mention these topics, never mind providing an example of how to do them within the context of that framework. (The one exception is PerlORM, which, aside from appearing to be incomplete and unmaintained, claims to be "only" 20-30% slower than Class::DBI (the slowest of the Big Three).)
Update (July 13, 2009): To clarify in response to Chas. Owens' response, my complaint isn't with the involvement of an RDBMS, but rather that the major ORMs (in most languages, really, not just in Perl) seem to focus on mapping the relational model into the object space. I want to map the object model into the relational space. Which is, yes, a form of object persistence, but it is also a form of object-relational mapping.
It is also substantially more difficult than the normal way of doing things, as the relational model is more limited than the object model, at least for the kinds of things I normally want to do, but it is possible. I know this because a coworker and I built such an ORM many years ago (long before I first encountered the term "ORM" - we called it an "object-relational persistence layer") in Borland Delphi and I have built my own half-assed implementation of that style of "object-to-relational mapper" (as opposed to the normal "object-from-relational" version) in Perl, but I don't really relish the thought of pushing it to become fully-functional and solid enough to use in production applications. Thus my interest in finding out whether someone else has already done it, so that I can use their very-complex wheel rather than rebuilding it myself.