Как указано для connect :
"Если не удается установить соединение (см. Ниже), он возвращает undef и устанавливает как $ DBI :: err, так и $ DBI :: errstr. (Он явно не устанавливает $ !.) Обычно вы должны проверять состояние возврата соединения и выведите $ DBI :: errstr, если это не удалось. "
Как только у вас есть дескриптор, метод err должен проверяться после каждого вызова метода дескриптора базы данных или оператора, а errstr аналогичным образом представляет сообщение об ошибке в случае ошибки.
Настоятельно рекомендуется и действительно требуется для таких оболочек, как DBIx :: Connector или Mojo :: Pg , чтобы установить RaiseError , чтобы избежать этот беспорядок в коде и вероятность того, что вы забудете проверить ошибки.