wusel101: STDIN einlesen, leere Variable

Beitrag lesen

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