我应该将utilities.pl更改为utilities.pm模块吗?

Fre*_*idt 6 perl perl-module

在我们的产品中,我们有一个很大的实用程序文件,我们需要(带do)在很多文件的开头.有没有理由把它变成一个模块?例如,而不是这样做:

do '../dbi_utilities.pl';
our ($db,$user,$pw,$attr);
my $Data = DBI->connect($db,$user,$pw,$attr) or die "Could not connect to database: $DBI::errstr";
Run Code Online (Sandbox Code Playgroud)

我不能这样做吗?:

use AppUtil;
my $Data = AppUtil->connect();
Run Code Online (Sandbox Code Playgroud)

Tan*_*lus 8

不这样做的唯一原因是时间.

也就是说,清理界面以及所有调用应用程序都需要时间来使用新界面.

当你开始使用正确的测试("make test"或"./Build test"或只是"证明......")并且能够检查你的变化时,你现在花费的时间将会超过你的成本在检查之前不会破坏任何东西.所以,无论如何,转换.请注意,这不是一个免费的收获.


bri*_*foy 7

通过将代码放入具有适当重构的模块中,可以轻松进行测试.我在Perl Journal的"脚本作为模块"一文中以及Perlmonks上的"脚本如何成为模块"中讨论了这个问题.

祝好运,


bmd*_*cks 6

使用do(),您每次都在加载和编译utilities.pl文件,如果您多次执行(),可能会导致问题.此外,use在编译时完成,这将允许您的程序更快失败,甚至测试perl -wc.

最后,将它保存在一个包中可以保护它的命名空间,这可以在项目增长时提供帮助.

我强烈建议将你的utilites.pl转换为一个适当的Perl包use.