package SQLConnection; use DBI; use Moose; use MooseX::ClassAttribute; class_has 'dbh' => ( is => 'rw',isa => 'DBI::db', lazy_build => 1); class_has 'db' => ( is => 'rw',isa => 'Str', default => 'theDB'); class_has 'port' => ( is => 'rw',isa => 'Int', default => 3306); class_has 'host' => ( is => 'rw',isa => 'Str', default => '127.0.0.1'); class_has 'user' => ( is => 'rw',isa => 'Str', default => 'theUSER'); class_has 'pwd' => ( is => 'rw',isa => 'Str', default => 'thePASS'); sub _build_dbh { my $self = shift; my $dsn = 'DBI:mysql:'.GSM::SQLConnection->db.';host='.GSM::SQLConnection->host.';port='.GSM::SQLConnection->port; return DBI->connect($dsn, GSM::SQLConnection->user, GSM::SQLConnection->pwd); } no Moose; no MooseX::ClassAttribute; __PACKAGE__->meta()->make_immutable(); 1;