在我们的产品中,我们有一个大的实用程序文件,在我们的许多文件开始时,我们需要它(使用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();发布于 2008-10-08 20:40:26
不这样做的唯一原因是时间。
也就是说,清理您的界面以及所有调用应用程序使用新界面都需要时间。
当你开始使用适当的测试("make test“或”.Build test“或仅仅”证明.“)时,你现在所花费的时间将不仅仅是虚构的。并且能够在签入之前检查您的更改不会破坏任何内容。所以,无论如何,皈依。只是要意识到这不是免费的收益。
发布于 2008-10-08 20:20:40
使用do(),每次加载和编译utilities.pl文件,如果不止一次加载和编译该文件,可能会导致问题。此外,use是在编译时完成的,这将允许您的程序更早地失败,甚至可以使用perl -wc进行测试。
最后,将它保存在包中可以保护它的命名空间,随着项目的发展,它可能会很有帮助。
我强烈建议将您的utilites.pl转换为一个装载了use的正确的Perl包。
发布于 2008-10-08 20:20:31
利用它制作一个模块将使它更加健壮。现在,很多事情都是非正式地相互依赖的,但这些依赖关系并不明显。
而且,它将使您能够只导入部分实用程序。
https://stackoverflow.com/questions/184662
复制相似问题