>>750
正規表現はそれで合ってるよ。(意図したいことは分かる。)
漏れも、簡単なチェックならそう書く。

んで、>>751の指摘の要点は
} elsif ($email =~ /^[^@]+@[^.]+\..+/) {
じゃなくて、
} elsif ($email =~ /^[^@]+@[^.]+\..+/) {
ってしろってことだけど、これでダメだったの?

print "<H5>[$email]は不正なメールアドレスです</H5><br>";
に書き換えてみて、うまく行かない時の表示キボン。