# connect with RaiseError set to true eval { $dbh->do('UPDATE a SET x = y'); $dbh->commit(); }; if ($@) { warn "flurg!: $@"; warn "flurg!: ", $dbh->errstr(); } #### DBD::mysql::db do failed: Table 'mysql.a' doesn't exist at ./test_db_eval.pl line 20. flurg!: DBD::mysql::db do failed: Table 'mysql.a' doesn't exist at ./test_db_eval.pl line 20. flurg!: Table 'mysql.a' doesn't exist at ./test_db_eval.pl line 25.