$internetpost =~ /[@.]/;
1 2 3
# max ein '@' und min. ein '.' im String if ( 1 >= ( $string =~ m/[@]/ ) && $string =~ m/[.]/ ) { }
2012-06-20T16:13:26 ?Nach ausgiebigen Diskussionen steht auf jeden Fall fest: Es soll nur nach einem "@"-Zeichen und mindestens einem Punkt gesuch werden. Die RFC's sind so umfangreich und konfus, daß alles andere keinen Sinn macht!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
sub checkmail { my $mail = shift; return '' if !defined $mail || ($mail =~ tr/\@//) != 1; my ($user,$serv); if ($mail =~ m/^(.+)@(.+)$/s) { $user = lc $1; $serv = lc $2; } else { return '' } $serv =~ s/\Q$1// while $serv =~ /([\n\r \])>}'";,])$/; return '' if !($serv =~ /^.+\..+$/) || $serv =~ /[^a-z0-9.-]/ || $serv =~ /\.\./g || $serv =~ /\.$/ || (($user =~ tr/"//)/2) =~ /\./ ; $user =~ s/""//g; $user =~ s/\Q$1// while $user =~ /^([\n\r \[{(<';,])/; return '' if $user =~ /[^a-z0-9._+&="-]/; return $user . '@' . $serv; }
1
2
3
4
5
6
7
8
9
my $atstatus = "N";
my $dotstatus = "N";
if ($internetpost =~ /@/) { $atstatus = "Y";}
if ($internetpost =~ /./) { $dotstatus = "Y";}
if ($atstatus eq "Y" and $dotstatus eq "Y") {goto SecondCheckOK;}
goto EmailUmfangError;
SecondCheckOK:
2012-06-20T16:33:41 ?Danke an alle. Vielleicht gibt es ja weitere Versionen...
2012-06-20T16:38:48 pktmGOTO führt dich auf jeden Fall nach Rom :D
1 2 3
$atstatus = $internetpost =~ /@/; $dotstatus = $internetpost =~ /\./; if ($atstatus and $dotstatus ) {goto SecondCheckOK;}
if ($internetpost =~ /@/ and $internetpost =~ /\./ ) {goto SecondCheckOK;}
1 2 3
my @at = $internetpost =~ /@/g; my @dot = $internetpost =~ /\./g; if( @dot > 0 and @at == 1) {goto SecondCheckOK;}
if(() = $internetpost =~ /\./g > 0 and () = $internetpost =~ /@/g == 1) { goto SecondCheckOK; }
goto SecondCheckOK if $internetpost =~ /@/ and $internetpost =~ /\./;
2012-06-20T16:27:45 payx... wenn sie in dieser Reihenfolge stehen und zwischen den beiden Zeichen kein Whitespace ist...
payx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$internetpost =~ s/;//g;
$internetpost =~ s/<//g;
$internetpost =~ s/>//g;
$internetpost =~ s/\*//g;
$internetpost =~ s/|//g;
$internetpost =~ s/\[//g;
$internetpost =~ s/\]//g;
$internetpost =~ s/{//g;
$internetpost =~ s/}//g;
$internetpost =~ s/&//g;
$internetpost =~ s/\\//g;
$internetpost =~ s/\015\012|\015|\012//g;
chomp($internetpost);
$internetpost =~ s/ //g;
$internetpost =~ s/\s+//g;
$internetpost=~s/[^\w.@-]//g;
2012-06-20T17:18:52 ?Eine E-Mail soll gar keinen Freiraum haben...
1 2 3 4 5 6 7 8 9 10
goto hallo; BACK: #... hallo: do { print "hallo\n"; goto BACK; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
my @funktions_werte; my @funktion_returns; #... @funktions_werte=('Etwas text',2); goto ausgabe; ausgabe_return: if($funktion_returns[0] == 1) { print "Erfolgreich\n"; } else { print "FEHLER\n"; } #... ausgabe: do { my $text=$funktions_werte[0]; my $wiederholungen=$funktions_werte[1]; my $ok=0; for(my $i=0; $i<$wiederholungen; $i++) { print "$i : $text\n"; $ok++; } @funktion_returns=($ok); goto ausgabe_return; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
my @funktions_werte; my @funktion_returns; my $return_to; #... $return_to='ausgabe_return1'; @funktions_werte=('Etwas text',2); goto ausgabe; ausgabe_return1: if($funktion_returns[0]) { print "Erfolgreich\n"; } else { print "FEHLER\n"; } $return_to='ausgabe_return2'; @funktions_werte=('Anderer Text',1); goto ausgabe; ausgabe_return2: #... ausgabe: do { my $text=$funktions_werte[0]; my $wiederholungen=$funktions_werte[1]; my $ok=0; for(my $i=0; $i<$wiederholungen; $i++) { print "$i : $text\n"; $ok++; } @funktion_returns=($ok); goto $return_to; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
#... my @funktion_returns = ausgabe ('Etwas text',2); if($funktion_returns[0]) { print "Erfolgreich\n"; } else { print "FEHLER\n"; } ausgabe('Anderer Text',1); #... sub ausgabe { my $text=$_[0]; my $wiederholungen=$_[1]; my $ok=0; for(my $i=0; $i<$wiederholungen; $i++) { print "$i : $text\n"; $ok++; } return ($ok); }
2012-06-20T18:57:12 ?BTW:Ich habe jetzt 778 Zeilen Code geschrieben - alles für Überprüfung und Sicherheit, sowie für Ausgabetests! Und noch nicht wirklich eine relevante Zeile für die eigentliche Funktion des Scriptes! Verrückt oder...
2012-06-20T21:14:07 ?Das mit verschiedene Stellen anspringen ist dann aber wieder doch etwas schwerer *g*.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
funktion(); # ... funktion($wert1,$wert2); # ... if($bedingung) { funktion($wert); } # ... sub funktion { # ... }
2012-06-20T18:57:12 ?BTW:Ich habe jetzt 778 Zeilen Code geschrieben - alles für Überprüfung und Sicherheit, sowie für Ausgabetests! Und noch nicht wirklich eine relevante Zeile für die eigentliche Funktion des Scriptes! Verrückt oder...
2012-06-20T17:18:52 ?