Описание тега dbix-class
Из описания на CPAN:
Это преобразователь SQL в объектно-ориентированный объект с объектным API, вдохновленным Class::DBI (с уровнем совместимости в качестве трамплина для переноса), и API набора результатов, который позволяет абстрактную инкапсуляцию операций с базой данных. Он направлен на то, чтобы представить запросы в вашем коде как можно более perl-ish, при этом обеспечивая доступ к как можно большему количеству возможностей базы данных, включая получение связанных записей из нескольких таблиц в одном запросе, JOIN, LEFT JOIN, COUNT, DISTINCT, GROUP BY, ORDER BY и поддержка.
DBIx::Class может обрабатывать первичные и внешние ключи с несколькими столбцами, сложные запросы и разбиение на страницы на уровне базы данных, а также делает все возможное, чтобы запрашивать только базу данных, чтобы вернуть то, о чем вы прямо просили. Если набор результатов используется в качестве итератора, он выбирает только строки из дескриптора оператора по запросу, чтобы минимизировать использование памяти. Он имеет поддержку автоматического увеличения для SQLite, MySQL, PostgreSQL, Oracle, SQL Server и DB2 и, как известно, используется в производственной среде, по крайней мере, на первых четырех, а также является готовым к разветвлению и поточной безопасности (хотя ваш DBD может не быть).