用于Web开发的Perl

时间:2012-09-02 09:04:58

标签: perl

如何从Web浏览器运行Perl脚本?是否需要某种Web服务器(即我们使用Apache for PHP)?

3 个答案:

答案 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和其他服务器,并可以缓存代码。请记住,如果您的变量没有很好的范围,缓存代码可能会产生有趣的副作用。