Hallo!
Habe die Lösung für das im Archiv z.B. unter:
http://forum.de.selfhtml.org/archiv/2001/5/t24555/
beschriebene Problem (leere Variable: STDIN lässt sich nicht
einlesen) per Zufall mit "try + error" gefunden:
Habe (wie viele) zum Auffinden von Fehlern am Anfang der Perlscripts:
#!/usr/bin/perl --
use CGI;
use CGI::Carp qw(fatalsToBrowser warningsToBrowser);
use CGI qw(:standard); print header();
warningsToBrowser(1);
Soweit so gut. Später werden dann Formulardaten eingelesen mit:
if($ENV{'REQUEST_METHOD'} eq 'GET') { $Daten = $ENV{'QUERY_STRING'} }
else { binmode STDIN;
bzw.: Einlesen im POST-mode, $Daten bis Länge des Strings:
read STDIN, $Daten, $ENV{'CONTENT_LENGTH'}; } ;
Dann war aber jedesmal unerklärlicherweise $Daten LEER.
ABER:
sobald ich die Zeilen am Anfang wegmache, insbesondere die Zeile:
use CGI qw(:standard); print header();
funktioniert es wieder _tadellos_ !!!
D.h. (...eigentlich unerklärlicherweise) führt die "Fehleranzeigeroutine" zu einem scheinbar leeren STDIN.
(Nur "scheinbar", denn $ENV{'CONTENT_LENGTH'} ergab auch hier _immer_ einen Wert grösser Null, selbst wenn $Daten einfach nur leer blieb, was ja ein Widerspruch in sich ist und nicht sein konnte. )
Gruss,
Chris
www.salsa.at