package Moo::Role::DBIConnection { use Moo::Role; use DBI; use Types::DBI; has dbh => (is => 'ro', isa => Dbh, required => 1, coerce => 1); }; #### package Moo::Role::DBIConnection { use Moo::Role; use DBI; use Types::DBI; use Types::Standard qw(HashRef); has dbh => ( is => 'ro', isa => Dbh->plus_coercions(HashRef, sub { DBI->connect(@{$_}{qw/dsn user password options/}) }), required => 1, coerce => 1, ); };