По умолчанию методы DBI выводят сообщение об ошибке в STDERR и возвращают false в случае ошибки.
Чтобы включить генерирование исключения при ошибке, используйте следующий параметр:
RaiseError => 1
Чтобы отключить для печати в STDERR используйте следующую опцию:
PrintError => 0
(Это не останавливает вывод неперехваченных исключений в STDERR.)
Вот как это выглядит:
my $dbh = DBI->connect(
"$dsn;Server=$host;Database=$database",
$user, $auth,
{ PrintError => 0, RaiseError => 1 },
);