Hallo primitives kleines Perl Problem:
»» $daten{'email'} =~ s/([\w-+]+)@([\w-+.]+)//g;
dieser Ausdruck soll das Gegenteil von dem tun, was er jetzt macht, wenn er nicht matcht soll der Wert von $daten{'email') auf den leeren String gesetzt werden, wie verneine ich den regulären Ausdruck, oder gibt es statt =~ einen NOT =~ Operator ?
$daten{'email'} = '' if $daten{'email'} !~ m/[1]+@[\w-+.]+$/;
Achtung: es gibt auch email-Adressen, die mit weiteren Sonderzeichen (zumindest vor dem @)
arbeiten: '_' und auch '.'. Das Zeichen '_' ist jedenfalls in \w enthalten - aber somit ja auch bei den
Domains möglich ...
Möchtest Du weiterhin sicherstellen das eine korrekte Domainn angegeben wurd, so solltest Du
mindestens einen Punkt erwarten. Die Toplevel-Domain besteht denn eh nur aus Buchstaben:
m/[2]+@[\w-+.]+.[a-zA-z]+$/
Jörk