【发布时间】:2025-12-08 21:05:01
【问题描述】:
我有以下 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(和其他类似的)问题,但标题不是printed,而不是我的。
我正在使用带有 Cygwin Perl 的 XAMPP Windows 包。
有人可以帮忙吗?谢谢。
【问题讨论】:
-
内部服务器错误意味着你应该阅读服务器日志,在那里你可以看到 perl 在它死之前输出的错误消息。
-
您必须始终
use strict和use warnings在您编写的每个 Perl 程序的顶部。这尤其适用于您向其他人寻求代码帮助的情况,因为这是一个非常简单的第一个调试步骤。在这种情况下,您会看到消息Global symbol "$CGI" requires explicit package name,这正是您的问题的原因。