我有一个分叉服务器.我在fork之前加载所有模块.
……还是我?我希望在程序中的某个点之后加载的每个模块都将一条消息记录到STDERR.
我打算使用以下内容,但它记录了一些使用do执行的脚本.
my %ignore = map { $_ => 1 } ( ... ); unshift @INC,sub { my (undef,$path) = @_; warn("$path wasn't loaded before forking.\n") if !$ignore{$path}; return (); };
我没有想法,但在我花费更多时间之前,我想知道是否有现成的解决方案.
解决方法
用的是什么?很简单
if $path =~ /\.pm\z/ && !$ignore{$path};
足以区分?
其他选择:
使用PPI进行静态代码分析(使用或基于Module::Extract::Use).
根据SIGHUP或其他信号将%INC转储到文件中.