my $inventoryInsert=...; my $inventoryUpdate=...; my $statement=...; warn $inventoryUpdate.$statement."\n"; eval{ $db->do($inventoryUpdate.$statement); }; if ($@){ warn "Can't update. Trying insert.\n\n$inventoryInsert$statement"; eval{ $db->do($inventoryInsert.$statement); }; if ($@){ warn "Aborted because $@"; $db->rollback; return 0; } } $db->commit;