my $dbh = $base::dbh; # get a database handle eval { # lots of inserts, updates, etc... }; if ($@) { my $err = $@; eval { $dbh->rollback }; # display formatted errors $base::showerrors( ($base::debug ? $err : "database related error"), ($@ ? " error performing rollback\n" : " rollback performed successfully\n") ); }