plperlu是否会重新加载Perl模块?

时间:2009-02-18 20:46:50

标签: perl postgresql plperl

如果我在plperlu中写了一些东西,并且它使用了Perl模块(例如MyModule :: Foo),那么该模块何时会重新加载?它是否像mod_perl的Apache2::Reload一样跟踪它们,以便触摸会导致重新解释?

1 个答案:

答案 0 :(得分:-1)

根据Leon评论的一些测试,显然MyModule :: Foo从第一次成功使用后就停留在内存中,但仅限于当前进程(即数据库句柄)。

如果在编译它时会出现错误(当你定义了一个使用它的函数时它会抱怨)或使用它(例如,当你从函数中选择时),它会重新加载它。但是,一旦成功运行,我无法看到强制它在进程内重新加载的方法,即使通过调用模块中的另一个子进行错误输出也是如此。

此外,如果您通过Apache :: DBI访问PostgreSQL,这意味着除非您断开所有缓存的句柄,否则缓存的句柄不会获取模块更改。

所以我猜没有办法在一个进程中强制检查,一个Apache2 :: Reload ......