Hallo,
Moin Moin !
ich tippe mal, das du das:
"print "Content-type: text/html\n\n";
print "Content-type: text/html\r\n\r\n";
Denn der Header hat CR/LF als Zeilenende, nicht nur LF. Wenn man es ganz genau nimmt, müßte man eigentlich sogar \015\012 statt \r\n schreiben (denn \r und \n sind laut Perl-Handbuch nicht immer ASCII 13 und ASCII 10), also:
print "Content-type: text/html\015\012\015\012";
Ich spare mir dieses ganze plattformabhängige Affentheater, und das eigenständige zerlegen der diversen Request-Daten. Meine CGIs sehen ungefähr so aus:
#!/usr/local/bin/perl -Tw
use strict;
use CGI qw(:all);
print
header(),
start_html('Demo'),
h1('Demo'),
end_html();
-T -- Tainted Mode, denn beim CGI-Schreiben hat man paranoid zu sein!
-w -- Warnings, denn schließlich will ich keinen schlechten Code
use strict -- Strengere Code-Prüfung, macht etwas mehr Arbeit beim Coden, spart aber viel Arbeit beim Debuggen.
use CGI -- Warum soll ich immer wieder den Code für die CGI-Spec neu erfinden, wenn Lincoln D. Stein ein ("das") Standard-Modul für CGIs gebaut hat, das zudem viele perverse Sonderfälle berücksichtigt und ausbügelt ? Dieses Modul ist bei jedem Perl 5 dabei, warum soll ich es dann nicht benutzen ?
print '<!DOCTYPE ....";
^-- auch das macht das CGI-Modul.
vergessen hat- bzw. kein Modul verwendest, welches dir dabei hilft...
Mein Reden ...
Alexander