为什么Perl(.pl)文件显示文本而不是执行文件?

时间:2015-03-09 08:55:45

标签: perl

我正在尝试在perl中创建一个简单的程序。但每当我尝试运行我的文件时,它总是显示纯文本而不是执行它。

以下是我正在使用的程序代码:

#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<html>\n";
print "<title> PERL CGI</title>\n";
print "<body>";
print "hello perl-cgi!!!!!!!";
print "</body>";
print "</html>\n";

3 个答案:

答案 0 :(得分:0)

您必须配置Web服务器以执行Perl脚本。有几种方法,最简单的是CGI,替代方案是mod_perlFastCGIPSGI。每种方法的配置取决于使用的HTTP服务器。

如果您在Apache2中使用CGI,请确保您的脚本是可执行的(假设您使用Linux / OSX /其他UNIX:chmod +x hello.pl),并且包含您的脚本的目录在Apache配置中具有Options +ExecCGI指令文件。通常,为{CGI脚本'正确设置/cgi-bin目录。

请参阅HTTP服务器文档,了解如何配置它以提供动态内容。

答案 1 :(得分:0)

您似乎正在尝试执行CGI脚本。这个CGI脚本可以是Perl脚本,也可以是shell脚本,也可以是C / C ++程序。

因此,您需要设置HTTP服务器,以便每当请求某个目录中的文件时,该文件都不会被发回;相反,它作为一个程序执行,无论该程序输出什么,都会被发回给您的浏览器进行显示。此功能称为公共网关接口或CGI,程序称为CGI脚本。

再次在继续进行CGI编程之前,请确保您的Web服务器支持CGI并配置为处理CGI程序。如果保存在预先配置的目录中,则所有CGI程序都将由HTTP服务器执行。此目录称为CGI目录,按照惯例,它名为/ cgi-bin。按照惯例,PERL CGI文件的扩展名为.cgi。

这是一个链接到名为hello.cgi的CGI脚本的简单链接。此文件保存在/ cgi-bin /目录中,并具有以下内容。在运行CGI程序之前,请确保使用chmod 755 hello.cgi UNIX命令具有chage文件模式。

此hello.cgi使用的代码如下所示:

#!/usr/bin/perl

print "Content-type:text/html\r\n\r\n";
print '<html>';
print '<head>';
print '<title>Hello Word - First CGI Program</title>';
print '</head>';
print '<body>';
print '<h2>Hello Word! This is my first CGI program</h2>';
print '</body>';
print '</html>';

1;

答案 2 :(得分:0)

运行&#39; .pl或.pm&#39;在具有要执行的编译器的Apache Web服务器中的文件,它通常应放在 cgi-bin 文件夹中。否则,您应在 .htaccess 文件或 Apache configuration file 中添加以下内容。

AddHandler cgi-script .cgi .pl .pm
Options +ExecCGI

之后,您应该将 file permission