package Reporter::DB; use Reporter::Class; # provides Moo, Modern::Perl & Data::Printer::p use lib '/home/raj/perl-lib'; use Local::DB; has dbname => ( is => 'ro', isa => String, required => 1 ); # uclh, hilis4, etc has dbix => ( is => 'lazy' ); # returns DBIx::Simple object sub _build_dbix { my $self = shift; my $db = $self->dbname; # dbname = uclh, hilis4, etc my $dbix = ( $db eq 'test' ) # return in memory sqlite dbix object ? Local::DB->dbix({ dsn => 'dbi:SQLite:dbname=:memory:' }) : Local::DB->dbix($db); return $dbix; } 1;