package My::App; use base 'CGI::Application'; use DBI; #... sub _connect { my $self = shift; my $dbh = $self->param('dbh'); return $dbh if $dbh; my $dsn = $self->param('dsn'); # user, password... $dbh = DBI->connect($dsn, ...); $self->param('dbh' => $dbh); $dbh; } sub _prepare { my $self = shift; my $dbh = $self->_connect(); $dbh->prepare(@_); } sub _execute { my $self = shift; my $sth = shift; $self->{_execute}++; # here it is... $sth->execute(@_); }