in reply to checking email syntax

I use Regexp::Common
use Regexp::Common qw[Email::Address]; unless ($email_addr =~ m/($RE{Email}{Address})/) { # error }
I also just started using Email::Valid. It can do checks to see if the domain really exists and has a MX record.
unless (Email::Valid->address(-address => $email_addr, -mxcheck => 1)) + { # error }