package Your::SQL::Utils;
use DBI;
use DBD::Pg;
sub new {
my ($class, ...) = @_;
bless { dbh => _connect() } => $class;
}
sub _connect {
...
return $dbh;
}
sub dbh {
my ($self) = @_;
$self->{dbh};
}
sub some_query {
my ($self, ...) = @_;
...
my $sth = $self->dbh->prepare(...);
...
$sth->execute(...);
...
}
sub other_query { ... }
####
# your_prog.pl
use Your::SQL::Utils;
use Getopt::Long;
my $query;
GetOptions('query=s' => \$query) or die "...";
my $util = Your::SQL::Utils::->new();
$util->$query();
####
$ your_prog.pl -q some_query