package database_mod;
use DBI;
our $dbh;
sub connect {
$dbh->### DBI connect
}#sub
sub add_user {
$dbh->### DBI SQL, ETC
}#sub
sub report {
$dbh->### ETC
}#sub
####
use database_mod;
database_mod::connect();
database_mod::add_user();
### etc
####
package database_mod;
use DBI;
our $dbh;
sub connect {
$dbh->### DBI connect
}#sub
package database_user;
sub add_user {
$database_mod::dbh->### DBI SQL, ETC
}#sub
package database_report;
sub report {
$database_mod::dbh->### ETC
}#sub
####
use database_mod;
use database_user;
database_mod::connect();
database_user::add_user();
### etc
####
package database_mod;
use DBI;
sub new {
### $class, $self, bless n all.
}#sub
sub connect {
$self->### DBI connect
}#sub
package database_user;
use base database_mod;
sub add_user {
$self->### DBI SQL, ETC
}#sub
package database_report;
use base database_mod;
sub report {
$database_mod::dbh->### ETC
}#sub
####
use database_mod;
use database_user;
my $db = new database_mod;
$db->connect();
$db->add_user();
$db->report();
### etc