Perl模塊用法指南

 本文和大家重點討論一下Perl模塊的應用,多數大型程序都分割成多個部件,每一部件通常含有一個或多個子程序及相關的變量,執行特定的一個或多個任務。集合了變量和子程序的部件稱爲程序Perl模塊。

Perl模塊

1、創建Perl模塊

Perl5中用包來創建Perl模塊,方法是創建包並將之存在同名的文件中。例如,名爲Mymodult的包存貯在文件Mymodult.pm中(擴展名.pm表示PerlModule)。下例的Perl模塊Mymodult含有子程序myfunc1和myfunc2及變量$myvar1和$myvar2。

  1. 1:#!/usr/local/bin/perl  
  2. 2:  
  3. 3:packageMymodule;  
  4. 4:requireExporter;  
  5. 5:@ISA=qw(Exporter);  
  6. 6:@EXPORT=qw(myfunc1myfunc2);  
  7. 7:@EXPORT_OK=qw($myvar1$myvar2);  
  8. 8:  
  9. 9:submyfunc1{  
  10. 10:$myvar1+=1;  
  11. 11:}  
  12. 12:  
  13. 13:submyfunc2{  
  14. 14:$myvar2+=2;  
  15. 15:}  

第3~7行是標準的PerlPerl模塊定義方式。第3行定義包,第4行包含內置PerlPerl模塊Exporter,6、7行進行子程序和變量的輸出以與外界聯繫。第6行創建名爲@EXPORT的特殊數組,該數組中的子程序可以被其它程序調用,這裏,myfunc1和myfunc2可以被訪問。其它任何在Perl模塊中定義但沒有賦給數組@EXPORT的子程序都是私有的,只能在Perl模塊內部調用。第7行創建另一個名爲@EXPORT_OK的特殊數組,其中含有可被外部程序訪問的變量,這裏含有$myvar1和$myvar2。

2、導入Perl模塊

將Perl模塊導入你的Perl程序中使用use語句,如下句導入了MymodulePerl模塊:
useMymodule;
這樣,Perl模塊Mymodule中的子程序和變量就可以使用了。
取消導入Perl模塊使用no語句,如下句取消了MymodulePerl模塊的導入:
noMymodule;
下面看一個導入Perl模塊和取消導入的例子,使用integerPerl模塊要求所有數字運算基於整數,浮點數在運算前均被轉化爲整數。

  1. 1:#!/usr/local/bin/perl  
  2. 2:  
  3. 3:useinteger;  
  4. 4:$result=2.4+2.4;  
  5. 5:print("$result\n");  
  6. 6:  
  7. 7:nointeger;  
  8. 8:$result=2.4+2.4;  
  9. 9:print("$result\n");  

程序輸出如下:

$program
4
4.8
$
如果use或no語句出現在語句塊中,則只在該塊的有效範圍內起作用,如:

  1. useinteger;  
  2. $result1=2.4+2.4;  
  3. if($result1==4){  
  4. nointeger;  
  5. $result2=3.4+3.4;  
  6. }  
  7. $result3=4.4+4.4;  

結果輸出如下:

4
6.8
8
這裏,no語句只在if語句中有效,出了if語句仍使用integerPerl模塊,因此4.4在做加法前被轉化成了4。

3、預定義Perl模塊

Perl5提供了許多有用的預定義Perl模塊,可以用use導入和no語句取消。下面是庫中最有用的一些Perl模塊:

 

Perl文檔中有完整的預定義Perl模塊列表。
注:世界各地的Perl5用戶寫了許多有用的Perl模塊,CPAN(ComprehensivePerlArchiveNetwork)的Perl文檔有其完整的列表。關於CPAN的更多信息見其網址:http://www.perl.com/perl/CPAN/README.html。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章