假设一个文件中只有一个package
,请问该命令或下面的Perl样板问题?如果没有技术原因,是否有任何审美?应该在包装声明之前或之后使用Perl样板吗?
use 5.006;
use strict;
use warnings;
package foo;
假设一个文件中只有一个package
,请问该命令或下面的Perl样板问题?如果没有技术原因,是否有任何审美?应该在包装声明之前或之后使用Perl样板吗?
use 5.006;
use strict;
use warnings;
package foo;
如果您的锅炉板的任何部分导入任何子例程或变量,或者对调用方的命名空间做任何棘手的事情,该命令就很重要。
如果你进入把它放在包的名称前,然后有一天,当你想添加use List::Util 'reduce';
你锅炉板的习惯,子程序将被导入到main
而不是foo
。因此,包foo
将不会导入reduce
,并且您可能会在摸索为什么它无法正常工作的同时摸不着头。
它与你显示的三个导入无关的原因是它们都是实用的模块(或断言),它们的效果是词汇范围的,而不是软件包范围。放置在文件的顶部,这些编译指示将对整个文件生效。
从技术的角度来看,订单无关紧要。
将软件包声明置于最开始的地方一直是我的惯例(并且在最佳实践中使用了Perl最佳实践)。如果之前有任何东西,我会在包装宣言前建议一个空行,以使其脱颖而出。
“从技术角度来看,订单无关紧要”...除非是这样。这对出口和其他情况很重要。 – ikegami 2011-04-27 17:22:44
请参阅PerlMonks上的相关讨论:[严格和包装的顺序](http://www.perlmonks.org/?node_id=84944) – toolic 2011-04-27 14:26:49