1

PerlスクリプトをWebアプリケーションのコンテキストに導入するようにPerlの%ENVを設定するにはどうすればよいですか?

Perl(Python)とは異なる言語で書かれたWebサイトがあります。ただし、.plファイルで構成されるPerlアプリケーションを使用する必要があります。

    #!/usr/bin/env perl
    "$ENV{DOCUMENT_ROOT}/foo/bar.pm" =~ /^(.+)$/;
    require $1;
    my $BAR = new BAR(
        user    => 'foo',
    );
    print $bar->get_content;

"$ENV{HTTP_HOST}"...およびモジュールbar.pmは、、、および"$ENV{REQUEST_URI}"に 依存します。"$ENV{REMOTE_ADDR}""$ENV{DOCUMENT_ROOT}"

このハッシュをどのように設定すればよいですか?これはPerlでの私の最初の経験なので、ここで本当に明白な何かを見逃しているかもしれません:)

4

2 に答える 2

4

Perl プロセスを Python コードから生成する場合 (「Web サーバーから直接」ではなく)、Python の親プロセス環境から子プロセス環境を設定する方法はいくつかあります。 "産卵"。

たとえば、を使用している場合は、ドキュメントで説明されているように、引数セットを目的の辞書にsubprocess.Popen渡すことができます。env=

env が None でない場合、新しいプロセスの環境変数を定義するマッピングでなければなりません。これらは、デフォルトの動作である現在のプロセスの環境を継承する代わりに使用されます。

于 2009-06-20T23:29:10.507 に答える
2

Perl の特別な%ENVハッシュは、環境へのインターフェースです。(フードの下では、必要に応じてgetenvandputenvを呼び出します。)

例えば:

$ cat run.sh 
#! /bin/bash

export REMOTE_ADDR=127.0.0.1

perl -le 'print $ENV{REMOTE_ADDR}'

$ ./run.sh 
127.0.0.1

Web サーバーはこれらの環境変数を設定する必要があります。

于 2009-06-20T22:30:14.713 に答える