Marcel T.: Zeilenumbruch mit '\n' ?!

Hallo,

mein Problem ist in Perl einen Zeileumbruch bei der Ausgabe
zu erzeugen. (Bin Anfänger.)

Ich habe mit OmniHttp einen Server gestartet und mit einem
Tutroial die ersten Schritte gewagt.

Die Ausgabe mit
--
#!/usr/local/bin/perl
print "Hello World.";
--
klappt.

Wenn ich es richtig verstanden habe, sollte
--
#!/usr/local/bin/perl
print "Hello World.\n";
print "und andere";
--
folgendes ausgeben:
--
Hello World.
und andere
--

Bei mir meckert Netscape jedoch, dass das Dokument keine
Daten enthält. Wo hab ich was falsch gemacht ???

Danke im voraus

Marcel

  1. #!/usr/local/bin/perl
    print "Hello World.\n";
    print "und andere";

    Bei mir meckert Netscape jedoch, dass das Dokument keine
    Daten enthält. Wo hab ich was falsch gemacht ???

    Dein Skript ist ein korrektes Perl-Skript, aber kein korrektes CGI-Skript.
    Bei diesem mußt Du dem Browser zuerst einen korrekten HTTP-Header schicken.

    In Deinem Fall:
       print "Content-Type: text/plain\n\n";

    und danach Deine eigene Ausgabe.

  2. Hallo Marcel

    Wenn Du Ausgaben aus dem Perlskript an den Browser schickst solltest Du auf jeden Fall den HTTP-Befehl "Content-Type" ausgeben, damit der Browser weiss, wie er die nachfolgenden Daten interpretieren soll .

    In Deinem Fall wäre die erste Ausgabe:
       print "Content-Type: text/plain\n\n";

    und dann:
       print "Hello World.\n";
       print "und andere";

    <Vermutung>
    Eigentlich sollte der Browser auch bei der 1. Ausgabe
       print "Hello World.";
    ein leeres Dokument ausgeben, da jedoch kein Newline (\n) definiert ist, wird er die nachfolgenden Daten standardmässig als Text interpretieren.
    </Vermutung>

    Falls Du HTML-Code im  Browser ausgeben willst verwende folgenden Conten-Type:
       print "Content-Type: text/html\n\n";

    Mehr dazu findest Du in <../../selfhtml/tcjj.htm> (Mime-Typen).

    Grüsse
    Tom