Hallo shadow
Ok hab mal die ganze Seite kopiert:
und das läuft ohne Fehlermeldung in der Konsole?
Das glaube ich nicht. Bei mir gibt's folgende Meldungen (ich hab CGI::Carp auskommentiert)
Scalar value @werte[0] better written as $werte[0] at test.pl line 13.
Global symbol "$ausgabe" requires explicit package name at test.pl line 8.
Global symbol "@werte" requires explicit package name at test.pl line 10.
Global symbol "$ausgabe" requires explicit package name at test.pl line 10.
Global symbol "$werte" requires explicit package name at test.pl line 11.
Global symbol "@werte" requires explicit package name at test.pl line 11.
Global symbol "$varmenu" requires explicit package name at test.pl line 13.
Global symbol "$varpool" requires explicit package name at test.pl line 13.
Global symbol "@werte" requires explicit package name at test.pl line 13.
BEGIN not safe after errors--compilation aborted at test.pl line 19.
du musst die variabeln mit my deklarieren, wenn du use strict verwendest.
#!/usr/bin/perl
die Warnungen solltest du dir auch anzeigen lassen:
#!/usr/bin/perl -w
#Fehlerausgabe an den Browser
use CGI::Carp qw(fatalsToBrowser);
use strict;$ausgabe=$ENV{'QUERY_STRING'};
my $ausgabe
Aber an deiner Stelle würd ich dir das CGI Modul empfehlen, das nicht nur das parsen des Input macht sondern noch eine ganze Menge mehr drauf hat.
@werte = split (/&/, $ausgabe);
foreach $werte (@werte)
{
($varmenu, $varpool) = split (/=/, @werte[0]);
}
Array spricht man so an $werte[index]
Es fehlt überall my
#Dateiflock
use Fcntl qw(:DEFAULT :flock);
use constant LOCK_EX => 2;
Ich meinte damit, das wenn du eine falsche Version von Fcntl hast der Import von :flock einen Fehler erzeugt, d.h. du kannst den Import nicht verwenden, wenn diese Zeile nicht den Fehler erzeugt, kannst du dir die Konstante sparen.
print "Content-type: text/html\n\n";
Der Wert nach dem gesucht werden soll
my $eingabe = $varpool;
my @zeile=();
my $gefunden=0;
open (DATEI, "<@dir1[0]") or die "Kann Datei @dir1[0] nicht öffnen$!\n";
flock(DATEI,2);
Hier sollltest du dann auch dioe Importierten Konstanten verwenden.
flock DATEI,LOCK_EX || die "Kann File nicht locken: $!";
while(<DATEI>) {
chomp;
@zeile=split(/\s*,\s*/, $_, 1);
Wenn ich das richtig versteh, willst du am Komma trennen, aber nur ein Element.
if($eingabe eq $zeile[0]){
$gefunden=1;
last;
}
}
close(DATEI);if($gefunden){
Ausgabe der zeile
print "$zeile[0] - zeile[1] - zeile[2] - zeile[3] - zeile[4]";
Da das split oben nur ein Elemente erzeugt sollte die Elemente 1-4 leer sein http://perldoc.com/perl5.8.0/pod/func/split.html
Struppi.