package DB; use strict; use DBI; sub new { my $class = shift; my $dsn = shift; my $dbh = DBI->connect($dsn, "", "",{RaiseError=>1, AutoCommit=>1}); return bless { _dbh => $dbh }, $class; } sub dbh { my $self = shift; return $self->{_dbh}; } sub createtb { my ($self, $form, $tabler) = @_; my $dbh = $self->dbh(); # ... } # --- Test.pl use strict; use DB; use SQL::Abstract; my $sql = SQL::Abstract->new(); my $db = DB->new("dbi:SQLite:dbname=test.db"); # ... $db->createtb($form2,$popsamp); # ...