Samo OO jest poprawne.
Komunikat o błędzie pochodzi z MySQL, odmawiając dostępu użytkownikowi „delkav”, ale użytkownik, z którym chcesz się połączyć, to „root”.
W każdym razie wygląda na to, że twoja linia DBI->connect() jest błędna. Aby śledzić DBD::mysql , musisz zmienić linię:
my $connect = DBI->connect("DBI:mysql:$database:$host", $user, $pwd) or die $DBI::errstr;
do
my $connect = DBI->connect("DBI:mysql:database=$database;host=$hostname;", $user, $pwd) or die $DBI::errstr;