I could be totally off base here (haven't programmed in Perl in eons), but perhaps your $dbh->commit(); needs to be inside the eval curly braces ({}).
I suspect what is happening is that after the error occurs within the braces the error is being reset by the commit() call outside of the braces.
Justin Hanekom<justin.hanekom@gmail.com>In reply to Re: Eval not working
by Anonymous Monk
in thread Eval not working
by DooDah
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |