Hallo ahe,
Danke
so geht's natürlich auch

nachdem ich aber noch einige komplexere Bedingungen mit mehreren verschachtelten && und || habe, wollte ich die www Prüfung eigentlich integriert und nicht separat machen...
Nachtrag:
hab's geschafft
SO werden jetzt alle Bedingungen und Fehlermeldungen
mit Prüfung auf www. korrekt verarbeitet:
my $fehler;
if ($nachricht ne "3" && !length($mail)) { $fehler = qq|fehler1=mail1|;}
if (($nachricht ne "3" && length($mail) && $mail !~ /^([^\s@,:"<>]+)@([^\s@,:"<>]+\.[^\s@,:"<>.\d]{2,}|(\d{1,3}\.){3}\d{1,3})$/) || $mail =~ /^www./i) {$fehler = qq|fehler1=mail1f|;}
if ($antwort ne "2" && !length($absender)) { $fehler = qq|fehler2=mail2|;}
if (($antwort ne "2" && length($absender) && $absender !~ /^([^\s@,:"<>]+)@([^\s@,:"<>]+\.[^\s@,:"<>.\d]{2,}|(\d{1,3}\.){3}\d{1,3})$/) || $absender =~ /^www./i) {$fehler = qq|fehler2=mail2f|;}
if (($nachricht ne "3" && length($mail ) < 8) && ($antwort ne "2" && length($absender ) < 8) ) { $fehler = qq|fehler1=mail1&fehler2=mail2|;}
if (($nachricht eq "3" || ($mail =~ /^([^\s@,:"<>]+)@([^\s@,:"<>]+\.[^\s@,:"<>.\d]{2,}|(\d{1,3}\.){3}\d{1,3})$/ && $mail !~ /^www./)) && ($antwort eq "2" || ($absender =~ /^([^\s@,:"<>]+)@([^\s@,:"<>]+\.[^\s@,:"<>.\d]{2,}|(\d{1,3}\.){3}\d{1,3})$/ && $absender !~ /^www./)) ){
my $ok = qq|UPDATE $table SET SCHREIBEN = '$schreiben',FREISCHALTEN = '$frei',ANTWORTEN = '$antwort',NACHRICHT='$nachricht',A_FREI = '$commfrei',AEMAIL='$mail',ABSENDER='$absender'|;
ssp::exec_sql($ok, 1);
my $err = ssp::get_last_sqlerr();
if (!$err) {$errmsg = "Die Änderungen wurden gespeichert"; }
}
else {
use CGI qw(:standard);
print redirect(
-URL => "$ssp::xxpath?showbynamebl_global,__xxsession__,,,$fehler",
);
}