danke euch erstmal, leider klappt es nicht wenn ich es mit Filehandling verwende...
ich habe diese input.txt:
test:abc123abC
MY_TEST:123456ABsf
test:12345
und bekomme diese Ausgabe:
abc123abC
is not OK
123456ABsf
is not OK
12345 is not OK
und in output.txt steht nichts...
mein Code:
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
40
my $eingabe = open(FILE,"input.txt");
if(not defined($eingabe)) {
die "Fehler beim ¨ Offnen der Datei: $!\n";
}
my $ausgabe = open(FILE_OUT,">> output.txt");
if(not defined($ausgabe)) {
die "Fehler beim ¨ Schreiben der Datei: $!\n";
}
while(defined(my $line = <FILE>)) {
@start = split(/:/, $line);
$word = @start[1];
if ( _is_valid_string( $word ) ) {
print FILE_OUT "$word is OK\n";
}
else {
print "$word is not OK\n";
}
}
print "\n\n";
close(FILE);
close(FILE_OUT);
system("pause");
sub _is_valid_string {
my $string = shift;
my $valid = 'a-zA-Z0-9!"$%.';
return 0 if length $string < 7;
return 0 if length $string > 16;
return 0 if $string =~ m/[^$valid]/;
return 0 if $string !~ m/[a-zA-Z]/;
return 0 if $string !~ m/\d/;
return 1;
}