in reply to Reqular Expression Explanation

I think it's important to note that this regular expression is only an approximation of correct. For a more reliable check, you should probably use Email::Valid to verify:
use Email::Valid; unless (Email::Valid->address($email_address)) { warn "Not a valid e-mail address\n"; return; }
There are a lot of things that can appear in e-mail addresses apart from just letters, numbers, dashes and dots.