А я юзаю след. код:

Код:
sub checkmail{
my $mail=$_[0];
if(($mail=~/(@.*@)|(\.\.)|(\.@)|(^\.)|(\.$)/)||
(($mail!~/^.+@\[\d+\.\d+\.\d+\.\d+\]/)&&($mail!~/^.+@\w+\.\w+/))){
return 0;
}else{
return 1;
}
}
Для большинства случаев весьма достаточно.
А то, что написанно ранее не предусматривает такой вариант:
user@[10.12.15.123]
Кстати, также возможны варианты типа:
name2.name@server.org
