my $dbh = DBI->connect( $connect_string, $user, $password, { RaiseError => 1, PrintError => 0, AutoCommit => 0, } ); sub insertRecord { my ($record, $dbh, $tapeID) = @_; my %max = getMaxID($dbh); eval { my $sth = $dbh->prepare_cached(addressQuery()); $sth->execute( $max{'addresses'}, ( map { $record->{"subscriber_$_"} qw( address_one address_two city state zip zip4 )), $tapeID, ); ##Execute more queries in the same fashion $dbh->commit(); } if ($@) { $dbh->rollback; return 0; } return 1; }