您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)Perl模塊如何創(chuàng)建和導(dǎo)入的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
Perl模塊
多數(shù)大型程序都分割成多個(gè)部件,每一部件通常含有一個(gè)或多個(gè)子程序及相關(guān)的變量,執(zhí)行特定的一個(gè)或多個(gè)任務(wù)。集合了變量和子程序的部件稱(chēng)為程序Perl模塊。
1、創(chuàng)建Perl模塊
Perl5中用包來(lái)創(chuàng)建Perl模塊,方法是創(chuàng)建包并將之存在同名的文件中。例如,名為Mymodult的包存貯在文件Mymodult.pm中(擴(kuò)展名.pm表示PerlModule)。下例的Perl模塊Mymodult含有子程序myfunc1和myfunc2及變量$myvar1和$myvar2。
1:#!/usr/local/bin/perl 2: 3:packageMymodule; 4:requireExporter; 5:@ISA=qw(Exporter); 6:@EXPORT=qw(myfunc1myfunc2); 7:@EXPORT_OK=qw($myvar1$myvar2); 8: 9:submyfunc1{ 10:$myvar1+=1; 11:} 12: 13:submyfunc2{ 14:$myvar2+=2; 15:}
第3~7行是標(biāo)準(zhǔn)的PerlPerl模塊定義方式。第3行定義包,第4行包含內(nèi)置PerlPerl模塊Exporter,6、7行進(jìn)行子程序和變量的輸出以與外界聯(lián)系。第6行創(chuàng)建名為@EXPORT的特殊數(shù)組,該數(shù)組中的子程序可以被其它程序調(diào)用,這里,myfunc1和myfunc2可以被訪問(wèn)。其它任何在Perl模塊中定義但沒(méi)有賦給數(shù)組@EXPORT的子程序都是私有的,只能在Perl模塊內(nèi)部調(diào)用。第7行創(chuàng)建另一個(gè)名為@EXPORT_OK的特殊數(shù)組,其中含有可被外部程序訪問(wèn)的變量,這里含有$myvar1和$myvar2。
2、導(dǎo)入Perl模塊
將Perl模塊導(dǎo)入你的Perl程序中使用use語(yǔ)句,如下句導(dǎo)入了MymodulePerl模塊:
useMymodule;
這樣,Perl模塊Mymodule中的子程序和變量就可以使用了。
取消導(dǎo)入Perl模塊使用no語(yǔ)句,如下句取消了MymodulePerl模塊的導(dǎo)入:
noMymodule;
下面看一個(gè)導(dǎo)入Perl模塊和取消導(dǎo)入的例子,使用integerPerl模塊要求所有數(shù)字運(yùn)算基于整數(shù),浮點(diǎn)數(shù)在運(yùn)算前均被轉(zhuǎn)化為整數(shù)。
1:#!/usr/local/bin/perl 2: 3:useinteger; 4:$result=2.4+2.4; 5:print("$result\n"); 6: 7:nointeger; 8:$result=2.4+2.4; 9:print("$result\n");
程序輸出如下:
$program
4
4.8
$
如果use或no語(yǔ)句出現(xiàn)在語(yǔ)句塊中,則只在該塊的有效范圍內(nèi)起作用,如:
useinteger; $result1=2.4+2.4; if($result1==4){ nointeger; $result2=3.4+3.4; } $result3=4.4+4.4;
結(jié)果輸出如下:
4
6.8
8
這里,no語(yǔ)句只在if語(yǔ)句中有效,出了if語(yǔ)句仍使用integerPerl模塊,因此4.4在做加法前被轉(zhuǎn)化成了4。
3、預(yù)定義Perl模塊
Perl5提供了許多有用的預(yù)定義Perl模塊,可以用use導(dǎo)入和no語(yǔ)句取消。下面是庫(kù)中最有用的一些Perl模塊:
Perl文檔中有完整的預(yù)定義Perl模塊列表。
感謝各位的閱讀!關(guān)于“Perl模塊如何創(chuàng)建和導(dǎo)入”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。