package MyModule::DBI;
use base Class::DBI;
use warnings;
use strict;
our $VERSION = '0.01';
my $dsn = "dbi:SQLite:dbname=/path/to/db";
__PACKAGE__ -> set_db('Main', $dsn);
1;
####
package MyModule::Data;
use base MyModule::DBI;
use warnings;
use strict;
our $VERSION = '0.01';
__PACKAGE__ -> table('data');
__PACKAGE__ -> columns(All => qw(column1 column2 column3));
1;
####
package MyModule;
use MyModule::Data;
use warnings;
use strict;
our $VERSION = '0.01';
sub new {
my ($class, %args) = @_;
my $self = bless({%args}, $class);
return $self;
}
1;
####
use MyModule;
my $obj = MyModule -> new(db_path => '/path/to/file');