Hallo Martin,
Mist, jetzt war Cheatah wieder schneller ;-)
Dann änder ich mal das bereits geschriebene, und versuch mal ein paar Erklärungsversuche (*schlechtdeutschschreib*), damit man auch was lernt :-)
[...]
PERL Variante1:
$daten = <STDIN>
wenn ich das Programm aufrufe passiert am Browser gar nix!!!
[...]
Da passiert nix, weil der Perl-Interpreter auf eine Eingabe von der Kommadozeile (<STDIN>) wartet. Wenn da nix eingegeben wird, wartet das Skript bis ulitmo, bzw. bis zu einem evtl. Timeout.
PERL Variante2:
in Selfhtml hab ich eine weitere Variante gefunden.:
read (STDIN, $daten, $env{CONTENT_LENGTH});
[...]
in diesem Fall wird das Programm auch ausgeführt aber statt dem Inhalt (der zwischen 2 hr tags steht) kommen nur die hori. ruler aber dazwischen stehen nicht die Daten.
Perl ist Casesensitive, d.h. Groß-Kleinschreibung muss beachtet werden! Es muss deshalb bei Umgebungsvariablen $ENV{} lauten. Außerdem wird ein String als Key erwartet, also muß es insgesamt so aussehen: %ENV{'CONTENT_LENGTH'}.
Frage:
Warum wird bei der ersten Variante der Code anscheinend gar nicht Kompiliert?
Das Skript wird schon ausgeführt, bleibt aber 'hängen', da es auf eine Eingabe wartet.
Wieso werden in meiner neuen html-Seite die Daten nicht dargestellt (Variante 2)?
Weil keine eingelesen werden :-), da die Umgebungsvariable falsch angesprochen wird (liest 0 Bytes von STDIN)
Ich hoffe, das beantwortet Deine Fragen.
Gruß AlexBausW