horstschulz: HTML - Code im Perlscipt

Ich bekomme ein Problem nicht gelöst. Ich komme mit der Perleinführung auf selfhtml.org gut zurecht, und die Beispiele laufen auf mein WEB - Server Apache/2.4.7 / Ubuntu 14.04 LTS.

Bis auf eines: wenn ich den Code:

#!/usr/bin/env perl
use strict;
use warnings;
 
print <<END;
Content-type: text/html
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head><title>Test-Ausgabe</title></head><body>
<h1>Hurra, es klappt!</h1>
</body></html>
END 

bekomme ich:

Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request.

Im Log steht:

[Thu Jan 19 18:55:02.648891 2017] [core:notice] [pid 1531] AH00094: Command line: '/usr/sbin/apache2' [Thu Jan 19 20:02:43.419209 2017] [cgi:error] [pid 1745] [client nn.143.152.nnn:43278] malformed header from script 'echo.pl': Bad header:

Ich habe viel gelesen, Code verglichen, aber kein Lösungsansatz gefunden. Wenn ich die einzelnen HTML – Angaben einzel mit print () aufrufe bekomme ich kein Fehler.

Wie kann ich den Fehler beseitigen? bis denne, H.Schulz

--
wir müssen die Welt retten, nur auf ihr gibt es Schokolade
  1. Die üblichen Verdächtigen:

    1. shebang
    2. Berechtigung zum Ausführen
    3. Serverconfiguration
    4. Zeilenendezeichen

    MfGs

  2. Hallo horstschulz,

    siehe z. B. HERE documents ([!]quoting)

    Grüße, Martl

  3. Fehler gefunden, der Header muß als erstes mit Print - Befehl gesendet werden. danach der Code zwischen > <<beginn und beginn am ende

    1. Fehler gefunden, der Header muß als erstes mit Print - Befehl gesendet werden.

      Nein, muss nicht, das kann alles zusammen.

      danach der Code zwischen > <<beginn und beginn am ende

      Bei einer Here-Doc-Notation musst Du sicherstellen, dass nach dem END-Marker gleich ein Zeilenumbruch kommt!

      Tipp: Schalte im Editor "unsichtbare Zeichen sichtbar machen" ein dann siehst Du sowas gleich.

      MfGs