Just to be clear, you do not need to use do_transaction() in order to use transactions with Class::DBI. It isn't even a part of Class::DBI; it's something that merlyn came up with to make things more convenient for himself and then shared with us on the Class::DBI list. All you have to do to use transactions is call commit like you normally would after doing some database work: