2

Web ブラウザーから Perl スクリプトを実行するにはどうすればよいですか? ある種の Web サーバーが必要ですか (つまり、PHP に Apache を使用しているため)?

4

3 に答える 3

4

ブラウザでperlスクリプトを実行する方法を知りたいです。

確かに、クライアント側の PerlScript を実行することは可能でした。

… ユーザーに ActiveState PerlScript プラグインがインストールされている場合

…そして Internet Explorer を実行していました。

それがまだ利用できるかどうかはわかりませんが、WWW では一般的に使用されていないため、制御するシステム (イントラネット アプリケーションなど) でのみ実用的です。それでも、Internet Explorer がロックインされているため、お勧めできません。

PHP用のApacheで使用しているように、何らかの種類のWebサーバーが必要ですか。

サーバー側の Perl は WWW の通常の選択であり、Web サーバーが必要です。

私が見た最近の開発はすべて (CGI で書かれた簡単でハックなデモを除く)、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 ]
        ];
};
于 2012-09-02T09:12:06.777 に答える
3

.htaccessDocumentRoot (または perl スクリプトを実行するフォルダーのみ)に、次の内容で呼び出されるファイルを追加します。

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 を実行するために必要なスクリプトはなく、小さなスクリプトのみを実行する場合はほとんど役に立ちません。

于 2012-09-02T09:27:10.850 に答える
1

これは一種の大きなトピックです。どこから始めることをお勧めするかわからない.

ブラウザではなく Web サーバーで perl スクリプトを実行したいということだと思います (そのようなことはデフォルトではサポートされておらず、これをオフハンドで行うブラウザ プラグインは知りません)。Web サーバーの場合、おそらく最善の方法は、フレームワーク (Catalyst、Dancer など) を選択するか、いくつかの CGI スクリプトを作成することです (CPAN の CGI::Simple とそのドキュメントを参照してください)。

さらに、Web サービス フレームワークには Plack と Mojolicious があります。これらは Apache や他のサーバーに接続でき、コードをキャッシュできます。変数のスコープが適切に設定されていない場合にコードをキャッシュすると、興味深い副作用が生じる可能性があることに注意してください。

于 2012-09-02T09:13:13.393 に答える