One more thing on Class::DBI (I don't know if it exists for DBIx::Class) : Class::DBI::Loader. This module waits for database access parameters and give instant access to all database table as Class::DBI objects. More, relation between all this objects (by foreign keys) are also available. A great lesson of lazyness leading to very small code (using Template-Toolkit for the view part in web development).