下面是這個模塊的內容:
packageMyModule;usestrict;useExporter;usevarsqw($VERSION@ISA@EXPORT@EXPORT_OKEXPORT_TAGS);$VERSION=1.00;@ISA=qw(Exporter);@EXPORT=();@EXPORT_OK=qw(func1func2);EXPORT_TAGS=(DEFAULT=>[qw(&func1)],Both=>[qw(&func1&func2)]);subfunc1{returnreverse@_}subfunc2{returnmap{uc}@_}1;首先,我們將通過聲明
我們需要用Exporter模塊來將我們的函數從MyModule::namespace輸出到main::namespace,讓使用MyModule的程序可以使用這些函數。為了usestrict,我們必須使用usevars來聲明一些變量。當然,在5.6版本以上我們還可以使用our來聲明變量。我們現在設置一個$VERSION數值,然后通過使用@ISA來使得Exporter成為MyModule的一部本。想要了解@ISA是什么以及如何使用等細節,請參考。
@EXPORT包含了我們需要默認輸出的函數列表。在這里,它是空的。一般來說,你通過默認的使用@EX),但其中1是最方便的。
你應該打開warnings來檢測你的模塊,因為它可以檢測出很多細微的錯誤。你可以通過在測試模塊代碼中添加-w參數來打開警告選項。如果你在模塊中添加了usewarnings,那么你的模塊必須要求運行在perl5.6以上,否則不支持。如果你在模塊的頂端添加了$^W ,那么你將會在全局范圍內打開警告選項-這將影響到其他模塊,你最好只在你自己的程序中這么使用,因為這略顯霸道了一些。這有一個專家寫的叫做"tye":http://www.perlmonks.org/?node=tye的代碼來測試警告選項,但沒有直接將它包含進他/她自己的模塊中。希望這些會講清楚它是怎樣工作的。:)tachyon
新聞熱點
疑難解答
圖片精選