#!/usr/bin/perl use strict; use warnings; { package MyDBI; use base qw(DBI); package MyDBI::db; use base qw(DBI::db); sub selectrow_array { my ($this) = shift; # only for ilustration return $this->SUPER::selectrow_array(@_); } package MyDBI::st; use base qw(DBI::st); } my $db = ...; # any connection, user, pwd my $user = ...; my $auth = ...; my $dbh = DBI->connect( "dbi:mysql:$db", $user, $auth, { 'RaiseError' => 1, 'RootClass' => 'MyDBI', 'PrintError' => 0, } ); warn ref($dbh); warn join ';', $dbh->selectrow_array("SELECT 'dog', 'cat', 'rat' "); warn join ';', $dbh->selectrow_array("SELECT 'dog', 'cat', 'rat' FROM no_such_table");