您的代码看起来像您想要一个CGI程序。CGI 意味着您通过网络浏览器调用您的程序并返回一个网站。虽然 vstm 的评论当然适用于非 cgi 程序,但您的示例需要更多的东西才能像那样工作。
您将需要安装一个 Web 服务器。看看xampp。它易于安装和维护,并带有 mysql 和 apache 安装。我推荐精简版,因为它没有所有开销。
安装后,您需要进行一些配置,以便它可以运行您的 perl 脚本。我认为你已经安装了 Active Perl。然后,您需要调整 apache 配置。
在c:\xampp\apache\conf\httpd.conf
你需要找到说
<Directory "C:/xampp/htdocs">
并阅读评论(标有#
)。您必须ExecCGI
在该<Directory>
部分内添加。对您希望运行 perl 脚本的每个目录执行此操作。然后找一行写着
AddHandler cgi-script .cgi .pl .asp
并确保它没有被注释掉。
完成后,将程序放在c:\xampp\htdocs
文件夹中(cgi-bin
应该也可以),并将shebang-line(第一行#!
)更改为安装 Active Perl 的位置,例如C:\perl\bin\perl.exe
. 它告诉 apache 它应该使用什么程序来执行 perl 脚本。
此外,在您的代码中添加更多行:
#!C:\perl\bin\perl.exe
use strict;
use warnings;
use CGI;
use CGI::Carp('fatalsToBrowser');
print "Content-type: text/html \n\n";
print "Hello World.\n";
现在您需要运行 apache Web 服务器。在 xampp 安装目录中有几个控制 apache 和 mysql 的批处理文件。还有一个xampp-control.exe
。运行。在新窗口中,单击Apache 旁边的开始按钮。
在您的浏览器中,转到http://localhost/<yourscript.pl>
。它现在应该说“Hello World!”。
如果没有,请确保您没有运行 Skype。它会阻止 apache 尝试在其上运行的端口 80。您需要将 apache 的端口更改为其他内容。请参阅此视频。
关于我所做的代码更改及其作用的几句话:
use strict;
应该始终在您的代码中。它迫使您遵守某些准则并编写更好的代码。这在Hello World程序中可能看起来很奇怪,但无论如何请这样做。
use warnings;
告诉你可能出错的事情。警告不是错误,而是 perl 对您可能不了解的内容有所帮助。用它。
use CGI
使程序的输出转到 Web 服务器。当您使用 CGI 程序时,您需要它。
print "Content-type: text/html \n\n";
是必需的,因此浏览器知道会发生什么。在这种情况下,一个 HTML 网站。它被称为HTTP -Header 并包含一个 mime 类型。
use CGI::Carp('fatalsToBrowser');
使错误转到浏览器。没有它,除非你查看 apache 的错误日志,否则你永远不会知道它们。