sub _is_valid_string { my $string = shift; my $valid = 'a-zA-Z0-9!"$%.'; # laenge kontrollieren return 0 if length $string < 7; return 0 if length $string > 16; # auf ungueltige Zeichen kontrollieren return 0 if $string =~ m/[^$valid]/; # auf mindestens einen Buchstaben kontrollieren return 0 if $string !~ m/[a-zA-Z]/; # auf mindestens eine Zahl kontrollieren return 0 if $string !~ m/\d/; # bisher kein Fehler? dann sollte $string ok sein return 1; } # Woerter ueberpruefen for my $word ( qw( abc123ABC %%%%%aa ) ) { if ( _is_valid_string( $word ) ) { print "$word is OK\n"; } else { print "$word is not OK\n"; } }