清理庞大的Perl Codebase

Tud*_*tin 6 perl cgi web-applications code-cleanup

我目前正在开发一个大约15年的Web应用程序.

它主要包含带有HTML :: Template模板的CGI perl脚本.

它有超过12 000个文件和大约260 MB的总代码.我估计不需要超过1500 perl脚本,我想摆脱所有未使用的代码.

实际上没有为代码编写测试.

我的问题是:

  • 您是否了解任何可以帮助我获取d和d模块列表的CPAN模块?userequire
  • 如果你想摆脱所有额外的代码,你的方法是什么?

我在考虑以下方法:

  • 尝试使用在特定位置输出加载的文件名的内容来覆盖userequireperl内置类
  • 覆盖warnings和/或strict模块import功能,并在特定位置输出文件名
  • 研究Devel::Coverperl模块并采用相同的方法并在进行手动测试而不是自动测试时分析代码
  • 用自定义的perl可执行文件替换perl可执行文件,它将记录它读取的文件的每个名称(我不知道该怎么做)
  • 一些创造性的使用lsof(?!?)

Ven*_*tsu 5

Devel :: Modlist可能会为您提供所需,但我从未使用过它.

有几次我需要做这样的事情,我选择了更强力的方法来检查%INC程序的最后.

END {
    open my $log_fh, ...;
    print $log_fh "$_\n" for sort keys %INC;
}
Run Code Online (Sandbox Code Playgroud)