package Project::CDBI; use base "Class::DBI"; __PACKAGE__->connection( __DSN__, __USER__, __PASSWORD__ ); 1; package Project::CDBI::User; use base "Project::CDBI"; __PACKAGE__->table( 'user' ); __PACKAGE__->columns( All => qw/ id name login passwd email / ); __PACKAGE__->sequence( 'user_id_seq' ); 1; package Project::Main; use strict; use warnings; use Project::CDBI::User; # many lines of code here... # somewhere here we find a user and change his email. $user = Project::CDBI::User->find_or_create( $user_id ); $user->email( $new_email_addr ); $user->update; Project::CDBI::User->dbi_commit; __END__