my $sth = $dbh->prepare('UPDATE person SET email = ? WHERE person_id = ?'); foreach my $id (@ids) { my $email = $email_addresses->[$id]; $email =~ s!\@.*!\@plusthree.com!; $sth->execute($email, $id); } #### my $sth = $dbh->prepare('UPDATE person SET email = ? WHERE person_id = ?'); foreach my $id (@ids) { my $email = $email_addresses->[$id]; $email =~ s!\@.*!\@plusthree.com!; while (1) { eval { $sth->execute($email, $id) }; last if not $@; if ($@ =~ /duplicate/i) { $email =~ s!\@!_@!; } else { die $@; } } } #### UPDATE person SET email = 'info___...___@plusthree.com' WHERE person_id = 408700;