假設一個文件中只有一個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