-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 回答