eval { $dbh->begin_work; $self->insert_file($file); $self->$handler($file); $self->update_package_table($file,$type); $self->update_city_summary($file->{'processed_scans'}{$type}); $dbh->commit; }; if ($@) { warn stamp()."Transaction aborted because $@ Rolling back transaction\n"; eval { $dbh->rollback }; if ($@) { warn stamp()."Rollback Unsuccessful because $@"; } else { warn stamp()."Rollback Successful"; } }