package MyApp::DBConnection use Moose; has dbh => { is => 'ro' }; sub BUILD { #load the config from a config file, etc. #create the connection, set the handle. Etc, etc. } 1; package MyApp; use Moose; has dbConnection (is => 'ro', isa => 'MyApp::DBConnection', default => sub { MyApp::DBConnection->new() }); 1;