2011-04-27 35 views
2

假设一个文件中只有一个package,请问该命令或下面的Perl样板问题?如果没有技术原因,是否有任何审美?应该在包装声明之前或之后使用Perl样板吗?

use 5.006; 
use strict; 
use warnings; 
package foo; 
+2

请参阅PerlMonks上的相关讨论:[严格和包装的顺序](http://www.perlmonks.org/?node_id=84944) – toolic 2011-04-27 14:26:49

回答

3

如果您的锅炉板的任何部分导入任何子例程或变量,或者对调用方的命名空间做任何棘手的事情,该命令就很重要。

如果你进入把它放在包的名称前,然后有一天,当你想添加use List::Util 'reduce';你锅炉板的习惯,子程序将被导入到main而不是foo。因此,包foo将不会导入reduce,并且您可能会在摸索为什么它无法正常工作的同时摸不着头。

它与你显示的三个导入无关的原因是它们都是实用的模块(或断言),它们的效果是词汇范围的,而不是软件包范围。放置在文件的顶部,这些编译指示将对整个文件生效。

2

从技术的角度来看,订单无关紧要。

将软件包声明置于最开始的地方一直是我的惯例(并且在最佳实践中使用了Perl最佳实践)。如果之前有任何东西,我会在包装宣言前建议一个空行,以使其脱颖而出。

+4

“从技术角度来看,订单无关紧要”...除非是这样。这对出口和其他情况很重要。 – ikegami 2011-04-27 17:22:44

相关问题