![](/file/23459/chip_04_2004.iso/images/spacing.gif) |
Ärger mit Perl-Dateien vermeiden
Als Internet- und Intranet-Server verwende ich eine Linux-Maschine. Darauf laufen hauptsächlich Perl-Programme. Und damit gibt es Probleme:Sowohl bei eigenen Listings als auch bei Programmen, die ich aus dem World Wide Web habe, erscheint beim Start oft die Fehlermeldung »Premature end of Script Header«. Was mache ich denn nur falsch?
Ihre Frage steht exemplarisch für einen ganzen Berg von Fragen, die wir zu dieser Fehlermeldung in letzter Zeit bekommen haben. Offensichtlich verzweifeln viele Perl-Programmierer daran. Tatsächlich gibt es allerdings mehrere Lösungen für das Problem. Daher hat CHIP Ihnen die häufigsten Fehlerquellen hier einmal zusammengetragen:
Fehler 1: Jedes Perl-Programm beginnt mit einen Verweis auf den Interpreter und dessen Verzeichnis. Findet das Programm den Interpreter nicht, erscheint die Fehlermeldung. Hier kommt es oft vor, dass der Pfad falsch angegeben wird. Denn meist steht hier
#!/usr/bin/perl
In den meisten Fällen muss die Zeile korrekt jedoch so lauten:
#!/usr/local/bin/perl
v Auf diese Weise findet das Skript dann auch das Perl-Verzeichnis samt dem Interpreter. Taucht der Fehler weiterhin auf, eliminieren Sie eine weitere Fehlerquelle.
Fehler 2: Haben Sie das Perl-Programm per FTPauf Ihren Server geladen, läuft es nicht, wenn Sie es im Binär-Modus geladen haben. Vergewissern Sie sich in Ihrem FTP-Client also, dass die Option »ASCII« aktiviert ist. Danach laden Sie das Programm erneut auf Ihren Server. Sollte auch das nicht weiterhelfen, gibt es eine dritte Problem-Möglichkeit, die Sie überprüfen sollten.
Fehler 3: Wenn Sie das Programm aus dem Internet geladen haben, liegt es Ihnen vermutlich in gezippter Form vor. Hier ist entscheidend, wie Sie es entpacken. Denn häufig wird die Datei nicht korrekt als Textdatei erkannt, und Sie müssen den Textmodus deshalb erzwingen. Geben Sie zum Entpacken folgende Zeile ein:
unzip -aa datei.zip
Anstelle von »datei.zip« setzen Sie den entsprechenden Namen des aus dem Web geladenen Files ein.
|
![](/file/23459/chip_04_2004.iso/images/spacing.gif) |