问题:
我在许多不同的脚本中使用了很多CPAN模块和硬编码的perl函数(其中很多是重复的),我想通过提取所有的脚本来使我的代码库DRY(不要重复自己)公共代码(甚至可能通过一些重构),将自己的代码和cpan代码都放到一个公共模块中,并在我的脚本中使用它,这样我就需要在发生更改时将代码更改为一个位置(他们这样做)。
所以我想问你是否正在执行你在perl职业生涯中实现的一些函数,你将永久地放入这样一个通用模块中,这样在编写新脚本时,你只需要编写特定于脚本的核心功能,并使用公共模块来完成剩余的代码。
答案 0 :(得分:4)
不要重构CPAN模块。把它们视为神秘盒子。如果使用多个cpan模块执行或多或少相同的工作存在问题,请对其进行标准化。
我有一堆本地Perl模块,我放在Local
命名空间中。例如,Local::WinAD
可以访问和操作我们的活动目录。 CPAN永远不会使用此Local
命名空间。它作为项目存储在我们的版本控制系统中,可以检出并安装在任何系统上。您可以使用use lib
编译指示。
如果你做模块,那就做吧。使用@EXPORT_OK
而非@EXPORT
。 (或者,更好的是,使它们成为面向对象的模块)。使用POD文档并通过Test::Simple和Test::More模块进行大量单元测试。
假装你将它们提交给CPAN。
并且,还要非常仔细地搜索CPAN,以确保您没有复制已经完成的工作。毕竟,你想练习DRY,其中包括不重做CPAN已经为你完成的工作。