Thread Nicht lineare Ausführung von Code (14 answers)
Opened by luci at 2007-11-20 19:16

luci
 2007-11-21 12:23
#102697 #102697
User since
2007-11-20
6 Artikel
BenutzerIn
[default_avatar]
hallo nochmal,

hier ist der ganze code,

folgendes Script lasse ich auf meinem neuen Linux Apache Server laufen aber ich bekomme ein ganz anderes Resultat als wenn ich es in der shell mit perl aufrufe oder auf einem Samba-Server laufen lasse. Ich habe den Eindruck dass der Code nicht linear Stück für Stück abgearbeitet wird sondern Dateien früher gespeichert werden obwohl sie erst später im Code drankommen.

Lasse ich folgendes Script auf Apache laufen erhalte ich die falsche Ausgabe "1", über die perl shell oder Sambar erhalte ich die richtige Ausgabe -1. In beiden Fällen wird die Datei richtig beschrieben.

(die "log.txt" Datei ist beim ersten Aufruf leer)

Code: (dl )
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
#!/usr/bin/perl

print ("Content-type: text/html\n\n");

my $q = "hallo";
my $doubleVote = -1;

my $FILE;
open $FILE, "log.txt"; # Datei ist anfangs leer !
my @lines = <$FILE>;
close ($FILE);

foreach my $pair (@lines) {
if ($pair eq $q) {
$doubleVote = 1;
}
}

if ($doubleVote == -1) {
my $FILE;
open $FILE, ">> log.txt";
print $FILE $q;
close ($FILE);
}

print $doubleVote;

# Ausgabe auf Apache für $doubleVote: 1 (falsch)
# Ausgabe auf Perl/Samba für $doubleVote: -1 (richtig)
# In beiden Fällen wurde die Datei beschrieben, nur der Wert von
# $doubleVote ist unterschiedlich.
# (Anmerkung: wird das script ein zweites mal aufgerufen ändert sich unter
# Apache der Wert nicht, unter Perl/Sambar ändert er sich korrekt auf 1

View full thread Nicht lineare Ausführung von Code