Per far tornare 3 se l' email non è valida, dove devo modificare la funzione?

sub is_email ($) {
$_ = shift;
s/(^\s+)|(\s+$)//g; # decommentare per IGNORARE gli spazi prima e dopo la stringa da controllare
$ip = '([1-9]?\d|1\d\d|2[0-4]\d|25[0-5])';
$ok = '[\w\$\-\.\&\+\*\"'\(\)\,]'; # caratteri validi a sinistra della '@'
return 0 if (/(@\.)|(\.@)|(@.*_)|(^_)|(\.\.)/);
return 1 if (/^[\w"]$ok*@(([\w\-\.]+\.[a-z]{2,4})|(\[($ip\.){3}$ip\]))$/i);
return 0
}