Perl ORM - DBIx::Class

www.perl.org
 

DBIx::Class - database object relational mapper (ORM)

Making database queries easy and code clean

DBIx::Class is a powerful object relational mapper (ORM), transparently converting results from a database into result set objects (a group of records) and result objects (a single record) and back again. With automatic database introspection DBIx::Class enables developers to focus on using and extending these objects without having to write and maintain SQL, making development faster, maintainable and encouraging code reuse.

Using Perl's DBI (database interface) DBIx::Class is able to talk to many different types of database. These include: Oracle, SQL Server, MySQL, PostgreSQL, SQLite, ODBC, DB2 and even CSV.

DBIx::Class's result set objects are customizable, you can create specific search methods which are then chainable. For example:

@web_employees = $employees_result_set->active()->in_department('web')->all();

Having defined active() and in_department() as part of the result set, these can now be re-used elsewhere making code readable and maintainable.

Additionally developers can insert business logic at the individual result object, for example a new employee or an employee who leaves could trigger an email that would automatically be sent to the relevant department to perform an action, IT may be required to create or delete an account, or payroll informed of employment status. Providing business logic at a core level promotes a single location for interactions with any individual record accessible from any point in the code base.

Quotes

  • "DBIx::Class is not only the best Perl ORM I've used, but also one of the best ORMs in any language." - Tobias Kremer
  • "DBIx::Class has made it so using SQL databases isn't tedious, but even pleasant and fun. It's amazingly powerful and well thought out. Truly amazing work." - Jake

Resources:

Alternative Perl ORMs:

Article Author

Leo Lapworth