在我们的产品中,我们有一个很大的实用程序文件,我们需要(带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)
不这样做的唯一原因是时间.
也就是说,清理界面以及所有调用应用程序都需要时间来使用新界面.
当你开始使用正确的测试("make test"或"./Build test"或只是"证明......")并且能够检查你的变化时,你现在花费的时间将会超过你的成本在检查之前不会破坏任何东西.所以,无论如何,转换.请注意,这不是一个免费的收获.
使用do(),您每次都在加载和编译utilities.pl文件,如果您多次执行(),可能会导致问题.此外,use在编译时完成,这将允许您的程序更快失败,甚至测试perl -wc.
最后,将它保存在一个包中可以保护它的命名空间,这可以在项目增长时提供帮助.
我强烈建议将你的utilites.pl转换为一个适当的Perl包use.
| 归档时间: |
|
| 查看次数: |
285 次 |
| 最近记录: |