ModPerl :: Registryを使用して実行されている場合、mod_perlで実行されているWebアプリで検出することは可能ですか?
ModPerl :: Registry(または同様のハンドラー)で実行されるスクリプトを作成したいのですが、mod_perl応答ハンドラーとしても機能します。
ModPerl :: Registryを使用して実行されている場合、mod_perlで実行されているWebアプリで検出することは可能ですか?
ModPerl :: Registry(または同様のハンドラー)で実行されるスクリプトを作成したいのですが、mod_perl応答ハンドラーとしても機能します。
ModPerl :: Registryは、システム内の他のすべてからコードを分離するために精巧なダンスを行い、その一部は、コードを下のパッケージにコンパイルすることModPerl::ROOT
です。
caller
戻るフレーム数を指定する引数を指定してリストコンテキストで呼び出されると、
# 0 1 2 3 4 ($package, $filename, $line, $subroutine, $hasargs, # 5 6 7 8 9 10 $wantarray, $evaltext, $is_require, $hints, $bitmask, $hinthash) = caller($i);
ここで、$subroutine
値は完全修飾名です。
ModPerl :: Registryhandler
は、前述の人工パッケージで指定されたサブでプログラム全体をラップするため、メインプログラムから、次のようなテストを使用します。
my $name = (caller 0)[3];
if ($name =~ /^ModPerl::ROOT::/) {
# run using ModPerl::Registry
...
}