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}$/ ) { ... [download]