mentioned some modules written after the original answer.
Index: perlfaq9.pod =================================================================== RCS file: /cvs/public/perlfaq/perlfaq9.pod,v retrieving revision 1.10 diff -u -d -r1.10 perlfaq9.pod --- perlfaq9.pod 3 Jul 2002 18:47:31 -0000 1.10 +++ perlfaq9.pod 3 Jul 2002 19:15:38 -0000 @@ -384,6 +384,14 @@ RFC-822 (the mail header standard) compliant, and addresses that aren't deliverable which are compliant. +You can use the Email::Valid or RFC::RFC822::Address which check +the format of the address, although they cannot actually tell you +if it is a deliverable address (i.e. that mail to the address +will not bounce). Modules like Mail::CheckUser and Mail::EXPN +try to interact with the domain name system or particular +mail servers to learn even more, but their methods do not +work everywhere---especially for security conscious administrators. + Many are tempted to try to eliminate many frequently-invalid mail addresses with a simple regex, such as C</^[\w.-]+\@(?:[\w-]+\.)+\w+$/>. It's a very bad idea. However,
