2011-04-27 34 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

相關問題