неверный заголовок из скрипта. Неверный заголовок=‹!DOCTYPE html›

Я получаю следующую ошибку сервера в Perl-скрипте:

неверный заголовок из скрипта. Неверный заголовок=: youtube_perl.pl,

Вот мой исходный код:


#!"C:\XAMPP\perl\bin\perl.exe" -T

use strict;
use warnings;

use CGI;
use CGI::Carp qw/fatalsToBrowser/;
use WWW::Mechanize;

my $q = CGI->new;

my $url = 'http://www.youtube.com';

my $mechanize = WWW::Mechanize->new(autocheck => 1);

$mechanize->get($url);

my $page = $mechanize->content();

print $page;

Заранее спасибо!


person nicktendo    schedule 25.01.2011    source источник


Ответы (2)


Догадаться. Пришлось добавить следующее, прежде чем я попытался распечатать страницу:

print "Content-type: text/html\n\n";

Я предполагаю, что perl не может печатать html-страницы без предварительного определения заголовка.

person nicktendo    schedule 25.01.2011
comment
@ user589294 - Нет. Perl может их распечатать. Но они не будут действительными ответами HTTP. Итак, если вы хотите, чтобы ваша HTML-страница, напечатанная Perl, передавалась по HTTP, вам нужно на самом деле распечатать полный ответ HTTP - не имеет ничего общего с Perl - person DVK; 25.01.2011
comment
Конечно, Perl может печатать HTML-страницы без заголовка! Однако вы не можете написать сценарий CGI без вывода заголовка. Лучше: print $q->header();. См. perldoc CGI. - person mscha; 25.01.2011
comment
Вы должны использовать \x0D\x0A, а не \n в качестве EOL при разговоре по HTTP. HTTP указывает, что строки должны заканчиваться CR-LF, тогда как \n является маркером конца строки для вашей текущей среды, а \n просто оказывается \x0D\x0A для вас, потому что вы работаете в Windows. - person mu is too short; 26.01.2011
comment
Благодарю вас! Это сработало! Что странно, наши старые скрипты работали без этого и в один прекрасный день перестали работать. Возможно обновление сервера. Не уверена. Любые идеи? - person Xonatron; 12.01.2019
comment
в bash/shell знаки \n в эхе не интерпретируются, но эхо добавляет \n автоматически, поэтому для вывода нужна еще одна команда эха - person FantomX1; 18.02.2021

print "Content-type: text/html\n\n";

Используйте \n\n без этого он ничего не напечатает, это даст:

Неверный заголовок из-за ошибки скрипта

В вашем файле журнала ошибок.

person sahil    schedule 19.09.2017