Web ブラウザーから Perl スクリプトを実行するにはどうすればよいですか? ある種の Web サーバーが必要ですか (つまり、PHP に Apache を使用しているため)?
3 に答える
ブラウザで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 ]
];
};
.htaccess
DocumentRoot (または 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 を実行するために必要なスクリプトはなく、小さなスクリプトのみを実行する場合はほとんど役に立ちません。
これは一種の大きなトピックです。どこから始めることをお勧めするかわからない.
ブラウザではなく Web サーバーで perl スクリプトを実行したいということだと思います (そのようなことはデフォルトではサポートされておらず、これをオフハンドで行うブラウザ プラグインは知りません)。Web サーバーの場合、おそらく最善の方法は、フレームワーク (Catalyst、Dancer など) を選択するか、いくつかの CGI スクリプトを作成することです (CPAN の CGI::Simple とそのドキュメントを参照してください)。
さらに、Web サービス フレームワークには Plack と Mojolicious があります。これらは Apache や他のサーバーに接続でき、コードをキャッシュできます。変数のスコープが適切に設定されていない場合にコードをキャッシュすると、興味深い副作用が生じる可能性があることに注意してください。