The only problem with those 2 modules is that they follow the exact RFC standard. Why is it a problem to follow standard? Because there are millions of email addresses out there that have a . before the @ (without the . being quoted), which is not RFC valid. I personally use Email::Valid::Loose, which contains all of the great features of Email::Valid yet doesn't break on my own email adderss.