Ein letzter Anlauf, das verrückte ist, wird der Schreibvorgang ausgeklammert also
ist $doubleVote = -1 (korrekt)
mit
ist $doubleVote = 1 (falsch)
Mein System kann wirklich in die Zukunft sehen oder Apache speichert erst die Dateien ab bevor es den Code ausführt (wie auch immer)
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
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper; # nur für die Testausgabe
use CGI::Carp qw(fatalsToBrowser); # damit Fehler im Browser angezeigt werden
print ("Content-type: text/html\n\n");
sub f1 {
my $q = "hallo";
my $doubleVote = -1;
open my $FILE,'<', "log.txt" or die "Cannot open log.txt: $!"; # Datei anfangs immer leer !
my @lines = <$FILE>;
close ($FILE);
print '<pre>', Dumper(\@lines),'</pre>';
foreach my $pair (@lines) {
if ($pair eq "$q\n") {
$doubleVote = 1;
}
}
if ($doubleVote == -1) {
open $FILE, ">>", "log.txt" or die "log.txt: " . $!;
print $FILE "$q\n";
close ($FILE) or die "Can't close log.txt: $!";
}
print $doubleVote;
}
&f1;