sub cgiapp_init { my $self = shift; # ...some unrelated code... my $dbh = DBI->connect('dbi:mysql:database', 'user', 'password', { RaiseError => 1 } ) or die $DBI::errstr; # ...more code... $self->param('dbh' => $dbh); } sub teardown { my $self = shift; $self->param('dbh')->disconnect() or die $self->param('dbh')->errstr; }