package MyApp::Role::DB use Moose::Role has 'dbh' => (is => 'ro', lazy_build => 1); sub _build_dbh { # some fancy code to figure out which DB to use return $dbh }