Perl arbeitet nicht mehr linear?

Alles, was Perl betrifft, kann hier besprochen werden.

Perl arbeitet nicht mehr linear?

Postby zipppo » 21. November 2007 02:45

Hallo,

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: Select all
#!/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
#
# interessant auch, löscht man         print $FILE $q;      dann stimmt $doubleVote wieder (also -1)



Woran liegt das? Was muss man wo an/aus oder umschalten?
MfG, Zippo
zipppo
 
Posts: 2
Joined: 27. April 2007 12:36

Postby matmike » 21. December 2007 21:40

Hm, eine Idee hätte ich: Durch die Ausführung über den Apachen ändert sich der Kontext, Du arbeitest also in einem anderen Verzeichnis ...
matmike
 
Posts: 7
Joined: 18. January 2007 20:25


Return to Perl

Who is online

Users browsing this forum: No registered users and 34 guests