in reply to understanding this database error code handling
if the dbh->do doesn't return something "true" then the die() will execute. 0, undef, and blank are all false results and would make it die. The assignment is "true" but the variable in its post assignment form is the final thing evaluated. So whatever the variable content is is what the final statement value is. This is because an assignment will always succeed, so there's no point in checking it.