PerlORM - Object relational mapper (ORM) for Perl.

PerlORM is Perl library that implements object-relational mapping. Its features are much similar to those of Java's Hibernate library, but interface is much different and easier to use.

General features:

  • Inheritance support
  • Nested transactions support
  • No SQL queries needed
  • Full-featured search of objects using native Perl-expressions
  • One-to-many and many-to-many relations
  • Foreign keys emulation
  • Objects changes history
  • Lazy loaded objects
  • Objects statistics (using GROUP BY)
  • Third party classes support
  • Autogenerated acessors/mutators
  • Objects caching
  • Separate RDBMS layer


What is ORM in general?

Object-Relational mapping (or O/RM), is a programming technique that links relational databases to object-oriented language concepts... see the article at Wikipedia.

Is it stable?

PerlORM is very young project and current version is annouced as Beta until it has certain feedback from its users, however author already use it in stable production environment about half a year.

You can get support timely by posting your question at forum or by submitting bug report via bug tracking system.

What RDBMS are supported?

You can use MySQL, PostgreSQL and SQLite as backend database for ORM.

Should I choose PerlORM to use in complex heavy-loaded project?

The PerlORM is being developed with strict concept in mind and it pays not so much attention to code performance. It is estimately 20-30% slower than ORMs like DBI::Class but gives you much more power and flexibility, and this makes PerlORM more preferable to use on complex projects to make development more rapid and clean.

To achieve reasonable performance level the PerlORM bets on distributed operating environment. Besides this apporoach is necessary for any scalable heavy-loaded site and can get you onto as high performance level as you can need.

In this feature the PerlORM may be compared to HTML::Mason library that slightly slows down site performance, but owing to all facilities it gives to developer, it is still the best way to go with huge projects.

Can one use PerlORM to extend existing project or it is useful only for newly started projects, those are to be written from scratch?

Definitely PerlORM can be used to go on with existing projects, and there is no need to rewrite any of existing code at a time. You can use PerlORM together with DBI or even with another ORM which may for some reason be more preferable to solve particular problem.

Ask your questions at Help forum.

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public Licence.