in reply to input - E-mail address - how to check string ?

Probably you have lost some quantifiers in regexp.

Try for example with:

while ( $email !~ m/^[\w\.\-]+\@[\w\.\-]+\.\w{2,3}$/ ) { ...