in reply to eval {} effect on DB Connection

I believe that if you haven't set the RaiseError attribute to 1, DBI won't die if something bad happens, and therefore an eval block won't catch anything. Alternatively, you can follow every DBI call with an or die statement.

So, have you set that attribute, or are you dieing properly? If no, try again with those changes. If yes, show us some of your involved code.