Logischer Operator und in Perl
m0b
Ich habe folgende Zeile in meinen Script eingebaut:
unless ($email =~ /./ && $email =~ /@/)
{$bool002 = 1}
Wenn $email nur einen Punkt enthält, wird $bool002 nicht eins gesetzt.
Wenn $email weder Punkt noch @ besitzt, wird $bool002 auch nich gleich eins gesetzt.
Sobald $email aber ein @ enthält, wird $bool002 gleich 1 gesetzt.
Da Punkt und @ in der Bedingung aber mit einem logischen UND verbunden
sind, dürfte $bool002 nur gleich 1 gesetzt werden, wenn $email Punkt und
@ enthält.
Was ist falsch????
PS: Ein Backslash "" vor das @ bringt nichts.....
Wäre cool wenn jemand etwas wüsste....
hi!
unless ($email =~ /./ && $email =~ /@/)
»» {$bool002 = 1}
Der . (Punkt) im regulären Ausdruck steht für jedes beliebige Zeichen. Deine Bedingung ist also immer war, wenn im $email mindestens irgendein beliebiges Zeichen und ein @ steht. Wenn du vor den Punkt ein \ setzt, müsste es funktionieren.
Du könntest auch gleich folgenden regulären Ausdruck für eMails verwenden, der wohl eher passen dürfte:
/[-\w.]+@[-\w]+.[a-zA-Z]{2,}/
Ich hoffe, da ist jetzt kein Fehler drin :))
bye, Frank!
hi!
unless ($email =~ /./ && $email =~ /@/)
»» {$bool002 = 1}
Der . (Punkt) im regulären Ausdruck steht für jedes beliebige Zeichen. Deine Bedingung ist also immer war, wenn im $email mindestens irgendein beliebiges Zeichen und ein @ steht. Wenn du vor den Punkt ein \ setzt, müsste es funktionieren.
Du könntest auch gleich folgenden regulären Ausdruck für eMails verwenden, der wohl eher passen dürfte:
/[-\w.]+@[-\w.]+?.[a-zA-Z]{2,}/
Ich hoffe, da ist jetzt kein Fehler drin :))
bye, Frank!