Perl"脚本标头过早结束"错误

Noa*_*h R 1 perl cgi

所以我正在使用Windows 7和Xampp运行localhost测试服务器.我正在开发一个可以抓取网页的网页抓取工具,但是当我在浏览器中打开它时,我得到了脚本标头过早结束的错误.我以为我得到的不包括"打印"内容类型:text/html \n \n";" 这通常是问题..但事实并非如此.

这是我正在使用的代码:

#!"\xampp\perl\bin\perl.exe"
print "Content-Type: text/html\n\n";
use strict; 
use warnings;

use LWP::Simple;
use LWP::UserAgent;
use HTTP::Request;
use HTTP::Response;
use HTML::LinkExtor;

open my $file1,"+>>", ("links.txt");
select($file1);  

my @urls = ('http://www.youtube.com/');

my $browser = LWP::UserAgent->new('IE 6');
$browser->timeout(10);


while (@urls) {
  my $url = shift @urls;
  my $request = HTTP::Request->new(GET => $URL);
  my $response = $browser->request($request);

  if ($response->is_error()) {printf "%s\n", $response->status_line;}
  my $contents = $response->content();

  my ($page_parser) = HTML::LinkExtor->new(undef, $url);
  $page_parser->parse($contents)->eof;
  @links = $page_parser->links;

  foreach $link (@links) {
    push @urls, $$link[2];  # Add link to list of urls before printing it
    print "$$link[2]\n";
  }

  sleep 60;
}
Run Code Online (Sandbox Code Playgroud)

ike*_*ami 5

我以为我从不包括这个 print "Content-Type: text/html\n\n";

不完全是.您没有证明print已经运行了,并且您没有print在其他输出之前证明已运行.

确实发生了编译时错误,在这种情况下,print语句永远不会被执行.检查Web服务器的错误日志以查找实际错误.