"标题之前的脚本输出结束" - 关于Apache的CGI

时间:2014-11-30 17:32:29

标签: apache perl cgi

我有以下CGI脚本:

#!c:\cygwin\bin\perl.exe

use CGI qw(:standard);

my $query = $CGI->new;

print header (
  -type   => "text/html",
  -status => "404 File not found"
);

print "<b>File not found</b>";

这给了我一个错误:

Server error!

The server encountered an internal error and was unable to complete your request.

Error message:
End of script output before headers: test.cgi

If you think this is a server error, please contact the webmaster.
Error 500
127.0.0.1
Apache/2.4.10 (Win32) OpenSSL/1.0.1h PHP/5.4.31

我查看了this(和其他类似的)问题,但标题不是print,而不是我的。{/ p>

我正在使用Cygwin Perl的XAMPP Windows软件包。

有人可以帮忙吗?感谢。

2 个答案:

答案 0 :(得分:5)

我不知道你为什么使用 $ CGI 而不是 CGI

我认为应该是

my $query = CGI->new;

在Linux上测试完美。

答案 1 :(得分:3)

因此,正如其他人所指出的,您的问题是使用变量($CGI),您实际需要一个类名(CGI)。但是,在我看来,这又提出了两个问题。

1 /你为什么要首先创建一个CGI对象?您正在使用基于函数的CGI接口(例如print header(...)),因此不需要CGI对象。

2 /你为什么要在2014年写一个CGI课程? Perl网络编程在这个千年中走了很长一段路,你似乎陷入了20世纪90年代: - /