如何从Web浏览器运行Perl脚本?是否需要某种Web服务器(即我们使用Apache for PHP)?
答案 0 :(得分:4)
现在我想知道如何在浏览器上运行perl脚本。
当然可以运行客户端PerlScript。
...提供用户安装了ActiveState PerlScript插件
...并且正在运行Internet Explorer。
我不知道它是否仍然可用,但它在WWW上并不常用,因此仅适用于您控制的系统(例如Intranet应用程序)。即使这样,Internet Explorer锁定也是一个坏主意。
我们在Apache for PHP中使用是否需要任何类型的Web服务器。
服务器端Perl是WWW的常用选择,需要一个Web服务器
我见过的所有最近的发展(用CGI编写的快速,hacky演示)都使用Plack / PGSI。这定义了Perl程序和许多与Web服务器交互的方法之间的通用接口(包括CGI,FastCGI,mod_perl和mod_psgi)。它还提供plackup
作为用于测试和调试的小型Web服务器。
Perl的大多数Web框架使用它
这是一个非常简单的骨架应用程序,我在搞清楚PSGI的时候一起敲了一下。它只是将请求的详细信息发送回浏览器。
use v5.12;
use Data::Dump qw/dump/;
use Plack::Request;
my $app = sub {
my $env = shift;
my $req = Plack::Request->new($env);
my $content = dump($req->parameters);
return [
200,
[ "Content-Type" => "text/plain" ],
[ $content ]
];
};
答案 1 :(得分:3)
在您的DocumentRoot中(或仅在您要执行perl脚本的文件夹中)添加一个名为.htaccess
的文件,其中包含以下内容:
Options -Indexes +ExecCGI
AddHandler cgi-script .pl
从现在开始,在将输出发送到客户端之前,将在服务器端执行每个扩展名为.pl
的文件。
您的文件必须以shebang开头,否则服务器将不知道如何解释其内容:
#!/usr/bin/perl
# And then your code...
use strict;
use warnings;
...
...
这是您在实际运行php脚本时基本上需要运行perl脚本。当然,你需要一个http服务器(Apache总是一个不错的选择)。
当然,如果您正在寻找一个让您的生活更轻松的开发框架,请查看其他答案。但是,它们都不需要在Web服务器上运行perl,如果你只想运行小脚本它们几乎没用。
答案 2 :(得分:1)
这是一个很大的话题。不确定从哪里开始建议。
我认为你的意思是想要在Web服务器中运行perl脚本,而不是在浏览器中运行(默认情况下不支持这样的东西,我不知道任何浏览器插件可以做到这一点)。对于Web服务器,最好的办法是选择一个框架(Catalyst,Dancer等)或编写一些CGI脚本(参见CPI上的CGI :: Simple及其文档,以便从那里开始)。
此外,还有Plack和Mojolicious用于Web服务框架。这些可以连接到Apache和其他服务器,并可以缓存代码。请记住,如果您的变量没有很好的范围,缓存代码可能会产生有趣的副作用。