OO自体は正しいです。
エラーメッセージはMySQLから送信され、ユーザー「delkav」のアクセスを拒否しますが、接続したいユーザーは「root」です。
とにかく、DBI-> connect()行が間違っているようです。 DBD::mysqlドキュメントをフォローするには 、行を変更する必要があります:
my $connect = DBI->connect("DBI:mysql:$database:$host", $user, $pwd) or die $DBI::errstr;
に
my $connect = DBI->connect("DBI:mysql:database=$database;host=$hostname;", $user, $pwd) or die $DBI::errstr;