-1

plperluで何かを書き、Perlモジュール(例:MyModule :: Foo)を使用した場合、そのモジュールはいつリロードされますか?mod_perlのApache2::Reloadのようにそれらを追跡しているので、タッチすると再解釈が発生しますか?

4

1 に答える 1

-1

Leon のコメントに基づいていくつかのテストを行った結果、明らかに MyModule::Foo は、最初に正常に使用されたときからメモリに残りますが、現在のプロセス (つまり、データベース ハンドル) 内でのみです。

コンパイル時にエラーが発生した場合 (それを使用する関数を定義するとエラーが発生します)、または使用時にエラーが発生した場合 (たとえば、関数から選択した場合)、再ロードされます。ただし、エラーが発生するモジュール内の別のサブを呼び出しても、プロセスが正常に実行されるとプロセス内で強制的にリロードする方法がわかりません。

また、Apache::DBI 経由で PostgreSQL にアクセスしている場合、これは、キャッシュされたハンドルをすべて切断しない限り、キャッシュされたハンドルがモジュールの変更を取得しないことを意味します。

したがって、Apache2::Reload のように、プロセス内でチェックを強制する方法はないと思います...

于 2009-09-23T14:43:15.127 に答える