当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《我应该将utilities.pl更改为utilities.pm模块吗?》经验,为你挑选了3个好方法。

在我们的产品中,我们有一个很大的实用程序文件,我们需要(带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";

我不能这样做吗?:

use AppUtil;
my $Data = AppUtil->connect();

Tanktalus.. 8

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

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

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



1> Tanktalus..:

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

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

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



2> brian d foy..:

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

祝好运,





3> bmdhacks..:

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

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

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

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有