亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? perl14.htm

?? PERL5中文教程
?? HTM
?? 第 1 頁 / 共 2 頁
字號:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb_2312-80">
<title>Perl教程之包和模塊</title>
<LINK rel="stylesheet" href="article.css" type="text/css">
</head>
<body>
<br>
<p align="center">第十四章 Perl5的包和模塊</p>

<p align="center"><a target="_blank" href="http://flamephoenix.126.com">by flamephoenix</a></p>

<a href="#1">一、require函數</a><br>
 &nbsp; <a href="#1.1">1、require函數和子程序庫</a><br>
 &nbsp; <a href="#1.2">2、用require指定Perl版本</a><br>
<a href="#2">二、包</a><br>
 &nbsp; <a href="#2.1">1、包的定義</a><br>
 &nbsp; <a href="#2.2">2、在包間切換</a><br>
 &nbsp; <a href="#2.3">3、main包</a><br>
 &nbsp; <a href="#2.4">4、包的引用</a><br>
 &nbsp; <a href="#2.5">5、指定無當前包</a><br>
 &nbsp; <a href="#2.6">6、包和子程序</a><br>
 &nbsp; <a href="#2.7">7、用包定義私有數據</a><br>
 &nbsp; <a href="#2.8">8、包和系統變量</a><br>
 &nbsp; <a href="#2.9">9、訪問符號表</a><br>
<a href="#3">三、模塊</a><br>
 &nbsp; <a href="#3.1">1、創建模塊</a><br>
 &nbsp; <a href="#3.2">2、導入模塊</a><br>
 &nbsp; <a href="#3.3">3、預定義模塊</a><br>

<br>
<a name="1">一、require函數</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;用require函數可以把程序分割成多個文件并創建函數庫。例如,在myfile.pl中有定義好的Perl函數,可用語句require ("myfile.pl"); 在程序中包含進來。當Perl解釋器看到這一語句,就在內置數組變量@INC指定的目錄中尋找文件myfile.pl。如果找到了,該文件中的語句就被執行,否則程序終止并輸出錯誤信息:<br>
&nbsp;&nbsp;&nbsp;&nbsp;Can't find myfile.pl in @INC<br>
&nbsp;&nbsp;&nbsp;&nbsp;作為子程序調用參數,文件中最后一個表達式的值成為返回值,require函數查看其是否為零,若為零則終止。例如myfile.pl最后的語句是:<br>
&nbsp;&nbsp;&nbsp;&nbsp;print ("hello, world!\n");<br>
&nbsp;&nbsp;&nbsp;&nbsp;$var = 0;<br>
&nbsp;&nbsp;&nbsp;&nbsp;因為最后的語句值為零,Perl解釋器輸出下列錯誤信息并推出:<br>
&nbsp;&nbsp;&nbsp;&nbsp;myfile.pl did not reture true value<br>
&nbsp;&nbsp;&nbsp;&nbsp;可以用簡單變量或數組元素等向require傳遞參數,如:<br>
<blockquote>
@reqlist = ("file1.pl", "file2.pl", "file3.pl");<br>
require ($reqlist[$0]);<br>
require ($reqlist[$1]);<br>
require ($reqlist[$2]);
</blockquote>
&nbsp;&nbsp;&nbsp;&nbsp;還可以不指定文件名,即:<br>
&nbsp;&nbsp;&nbsp;&nbsp;require;<br>
&nbsp;&nbsp;&nbsp;&nbsp;這時,變量$_的值即作為文件名傳遞給require。<br>
&nbsp;&nbsp;&nbsp;&nbsp;注:如果@INC中有多個目錄中含有同一個文件,則只有第一個被包含。<br>
<a name="1.1">1、require函數和子程序庫</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;用require函數可以創建可用于所有Perl程序的子程序庫,步驟如下:<br>
<blockquote>
a、確定存貯子程序庫的目錄<br>
b、將子程序抽取放到單獨的文件中,將文件放到子程序庫目錄<br>
c、每個文件末尾加一句非零值的語句,最簡單的辦法是語句  1;<br>
d、在主程序中用require包含一個或多個所需的文件。<br>
e、運行主程序時,用 -I 選項指定子程序庫目錄,或者在調用require前將該目錄添加到@INC數組中。
</blockquote>
&nbsp;&nbsp;&nbsp;&nbsp;例如:假設目錄/u/perldir中存有你的Perl子程序庫,子程序mysub存貯在文件mysub.pl中?,F在來包含上該文件:<br>
&nbsp;&nbsp;&nbsp;&nbsp;unshift (@INC, "/u/perldir");<br>
&nbsp;&nbsp;&nbsp;&nbsp;require ("mysub.pl");<br>
&nbsp;&nbsp;&nbsp;&nbsp;對unshift的調用把目錄/u/perldir添加到@INC數組,對require的調用將mysub.pl文件的內容包含進來作為程序的一部分。<br>
注意:<br>
<blockquote>
1、應該使用unshift來向@INC中添加目錄,而不是push。因為push增加到@INC的末尾,則該目錄將被最后搜尋。<br>
2、如果你的庫文件名與/usr/local/lib/perl中的某文件同名,則不會被包含進來,因為require只包含同名文件中的第一個。
</blockquote>
<a name="1.2">2、用require指定Perl版本</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;Perl 5中,可以用require語句來指定程序運行所需的Perl版本。當Perl解釋器看到require后跟著數字時,則只有其版本高于或等于該數字時才運行該程序。例如,下面語句表明只有Perl解釋器為5.001版或更高時才運行該程序:<br>
&nbsp;&nbsp;&nbsp;&nbsp;require 5.001;<br>
<a name="2">二、包</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;Perl程序把變量和子程序的名稱存貯到符號表中,perl的符號表中名字的集合就稱為包(package)。<br>
<a name="2.1">1、包的定義</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;在一個程序中可以定義多個包,每個包有一個單獨的符號表,定義語法為:<br>
&nbsp;&nbsp;&nbsp;&nbsp;package mypack;<br>
&nbsp;&nbsp;&nbsp;&nbsp;此語句定義一個名為mypack的包,從此以后定義的所有變量和子程序的名字都存貯在該包關聯的符號表中,直到遇到另一個package語句為止。<br>
&nbsp;&nbsp;&nbsp;&nbsp;每個符號表有其自己的一組變量、子程序名,各組名字是不相關的,因此可以在不同的包中使用相同的變量名,而代表的是不同的變量。如:<br>
<blockquote>
$var = 14;<br>
package mypack;<br>
$var = 6;
</blockquote>
&nbsp;&nbsp;&nbsp;&nbsp;第一個語句創建變量$var并存貯在main符號表中,第三個語句創建另一個同名變量$var并存貯在mypack包的符號表中。<br>
<a name="2.2">2、在包間切換</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;在程序里可以隨時在包間來回切換,如:<br>
<blockquote>
1:  #!/usr/local/bin/perl<br>
2:  <br>
3:  package pack1;<br>
4:  $var = 26;<br>
5:  package pack2;<br>
6:  $var = 34;<br>
7:  package pack1;<br>
8:  print ("$var\n");
</blockquote>
&nbsp;&nbsp;&nbsp;&nbsp;運行結果如下:<br>
<blockquote>
$ program<br>
26<br>
$
</blockquote>
&nbsp;&nbsp;&nbsp;&nbsp;第三行定義了包pack1,第四行創建變量$var,存貯在包pack1的符號表中,第五行定義新包pack2,第六行創建另一個變量$var,存貯在包pack2的符號表中。這樣就有兩個獨立的$var,分別存貯在不同的包中。第七行又指定pack1為當前包,因為包pack1已經定義,這樣,所有變量和子程序的定義和調用都為該包的符號表中存貯的名字。因此第八行對$var的調用為pack1包中的$var,其值為26。<br>
<a name="2.3">3、main包</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;存貯變量和子程序的名字的缺省符號表是與名為main的包相關聯的。如果在程序里定義了其它的包,當你想切換回去使用缺省的符號表,可以重新指定main包:<br>
&nbsp;&nbsp;&nbsp;&nbsp;package main;<br>
&nbsp;&nbsp;&nbsp;&nbsp;這樣,接下來的程序就好象從沒定義過包一樣,變量和子程序的名字象通常那樣存貯。<br>
<a name="2.4">4、包的引用</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;在一個包中可以引用其它包中的變量或子程序,方法是在變量名前面加上包名和一個單引號,如:<br>
<blockquote>
package mypack;<br>
$var = 26;<br>
package main;<br>
print ("$mypack'var\n");
</blockquote>
&nbsp;&nbsp;&nbsp;&nbsp;這里,$mypack'var為mypack包中的變量$var。<br>
&nbsp;&nbsp;&nbsp;&nbsp;注意:在Perl 5中,包名和變量名用雙冒號隔開,即$mypack::var。單引號引用的方式仍然支持,但將來的版本中未必支持。<br>
<a name="2.5">5、指定無當前包</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;在Perl 5中,可以用如下語句指定無當前包:<br>
&nbsp;&nbsp;&nbsp;&nbsp; package;<br>
&nbsp;&nbsp;&nbsp;&nbsp;這時,所有的變量必須明確指出所屬包名,否則就無效--錯誤。<br>
&nbsp;&nbsp;&nbsp;&nbsp; $mypack::var = 21; #ok<br>
&nbsp;&nbsp;&nbsp;&nbsp; $var = 21; &nbsp; #error - no current package<br>
&nbsp;&nbsp;&nbsp;&nbsp;這種情況直到用package語句指定當前包為止。<br>
<a name="2.6">6、包和子程序</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;包的定義影響到程序中的所有語句,包括子程序,如:<br>
<blockquote>
package mypack;<br>
subroutine mysub {<br>
 &nbsp;  local ($myvar);<br>
 &nbsp; # stuff goes here<br>
}
</blockquote>
&nbsp;&nbsp;&nbsp;&nbsp;這里,mysub和myvar都是包mypack的一部分。在包mypack外調用子程序mysub,則要指定包:$mypack'mysub。<br>
&nbsp;&nbsp;&nbsp;&nbsp;可以在子程序中切換包:<br>
<blockquote>
package pack1;<br>
subroutine mysub {<br>
 &nbsp;  $var1 = 1;<br>
 &nbsp;  package pack2;<br>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
6080亚洲精品一区二区| 婷婷成人激情在线网| 亚洲精品成人在线| 麻豆免费精品视频| 99精品欧美一区二区三区小说 | 亚洲一区二区欧美激情| 狠狠色丁香久久婷婷综合_中| 在线观看视频一区| 国产日产欧美一区二区视频| 青青国产91久久久久久| 欧美性生交片4| 最新国产成人在线观看| 国产91丝袜在线播放| 精品少妇一区二区| 日韩精品国产精品| 欧美丝袜丝交足nylons图片| 亚洲色图一区二区| 成人免费视频播放| 国产丝袜欧美中文另类| 精品在线亚洲视频| 日韩欧美电影一二三| 视频一区二区三区中文字幕| 欧美日韩中文字幕精品| 尤物在线观看一区| 欧美亚洲自拍偷拍| 亚洲午夜一区二区| 欧美日韩在线三级| 亚洲成人精品一区| 精品1区2区3区| 水野朝阳av一区二区三区| 欧美日韩一级大片网址| 亚洲一区二区三区中文字幕| 91老师国产黑色丝袜在线| 成人欧美一区二区三区在线播放| 成人av在线资源网| 国产精品九色蝌蚪自拍| 99国产精品久久久久久久久久久| 欧美激情一区二区三区| 成人免费毛片片v| 国产精品国产三级国产aⅴ中文| 国产传媒久久文化传媒| 中文字幕亚洲视频| 欧美在线视频日韩| 青青草原综合久久大伊人精品 | 久久久99久久精品欧美| 国产麻豆精品视频| 国产精品福利一区| 欧美午夜在线观看| 美女一区二区在线观看| 久久综合狠狠综合| 成人免费看片app下载| 综合自拍亚洲综合图不卡区| 欧美性生活一区| 免费日本视频一区| 国产日韩精品一区| 91免费精品国自产拍在线不卡| 亚洲一二三专区| 91精品国产色综合久久ai换脸 | 亚洲r级在线视频| 欧美成人精精品一区二区频| 国产成人夜色高潮福利影视| 亚洲欧美日韩一区| 在线91免费看| 成人看片黄a免费看在线| 亚洲中国最大av网站| 欧美mv和日韩mv国产网站| 国产成人精品亚洲777人妖| 亚洲综合av网| 337p粉嫩大胆色噜噜噜噜亚洲 | 国产麻豆欧美日韩一区| 亚洲精品亚洲人成人网在线播放| 欧美日韩大陆一区二区| 成人一区二区三区视频| 视频一区二区三区中文字幕| 欧美激情一区二区三区不卡| 欧美日韩电影在线播放| 成人高清av在线| 老司机精品视频线观看86| 18欧美乱大交hd1984| 日韩亚洲欧美成人一区| 99re8在线精品视频免费播放| 日韩国产欧美在线观看| 国产精品第13页| 欧美mv和日韩mv的网站| 91精品办公室少妇高潮对白| 国产乱人伦偷精品视频不卡| 亚洲国产日韩一区二区| 中日韩av电影| 精品国偷自产国产一区| 欧美色倩网站大全免费| 99久久99久久免费精品蜜臀| 免费观看在线色综合| 亚洲国产视频一区二区| 亚洲男同性恋视频| 久久久www成人免费无遮挡大片| 欧美男男青年gay1069videost| 波多野结衣亚洲| 国产精品系列在线播放| 老鸭窝一区二区久久精品| 亚洲va欧美va人人爽| 亚洲影视在线播放| 亚洲色图另类专区| 中文字幕第一区| 久久先锋资源网| 欧美成人国产一区二区| 欧美一区二区黄色| 欧美一区二区三区四区五区 | 99精品欧美一区| 成人免费视频视频在线观看免费| 韩国精品免费视频| 韩国精品久久久| 国产美女视频一区| 激情久久五月天| 国产一区在线观看麻豆| 精品一区二区久久久| 精品一区二区影视| 国产在线精品一区在线观看麻豆| 奇米影视一区二区三区| 免费成人深夜小野草| 天天操天天干天天综合网| 午夜精品久久久久久| 日本aⅴ免费视频一区二区三区| 日韩精品视频网站| 精品一区二区三区免费| 国产伦精品一区二区三区免费| 国产夫妻精品视频| proumb性欧美在线观看| 91麻豆国产精品久久| 欧美日韩在线精品一区二区三区激情| 在线观看成人免费视频| 91精品国产91久久久久久一区二区| 91精品久久久久久久久99蜜臂 | 欧美午夜视频网站| 555www色欧美视频| 久久免费看少妇高潮| 国产精品三级av| 伊人开心综合网| 五月天一区二区三区| 麻豆精品一区二区三区| 国产乱人伦偷精品视频免下载| 成人免费毛片app| 欧美视频三区在线播放| 日韩欧美一区二区视频| 中文字幕免费观看一区| 亚洲日穴在线视频| 美女尤物国产一区| 成人精品视频网站| 欧美日韩一区二区三区免费看| 欧美一区二区大片| 国产精品女上位| 亚洲成a人片在线不卡一二三区| 韩国欧美国产一区| 色婷婷综合久久久中文字幕| 日韩美一区二区三区| 国产精品久久二区二区| 美女国产一区二区三区| www.日本不卡| 91精品国产入口在线| 国产精品国产自产拍在线| 日韩高清不卡一区二区三区| 成人美女在线观看| 欧美一级视频精品观看| 日韩一区有码在线| 国产一区二区成人久久免费影院| 在线观看日韩国产| 久久精品视频一区| 水蜜桃久久夜色精品一区的特点| 成人久久视频在线观看| 日韩欧美一区二区不卡| 亚洲高清免费视频| 成人开心网精品视频| 精品国产精品一区二区夜夜嗨| 亚洲欧洲一区二区三区| 国产九色sp调教91| 日韩精品在线网站| 亚洲国产精品麻豆| 色综合咪咪久久| 日本一区二区三区dvd视频在线| 蜜臀91精品一区二区三区| 色8久久精品久久久久久蜜| 国产欧美在线观看一区| 精品一区二区影视| 日韩欧美成人一区二区| 亚洲妇熟xx妇色黄| 在线一区二区三区四区| 综合激情成人伊人| 97精品久久久午夜一区二区三区| 久久嫩草精品久久久精品一| 理论电影国产精品| 欧美一卡二卡在线观看| 日韩和欧美一区二区三区| 欧美伊人久久久久久久久影院| 亚洲久草在线视频| 91免费观看视频在线| 亚洲男人的天堂网| 色婷婷国产精品| 亚洲精品水蜜桃| 欧美性感一类影片在线播放| 亚洲色图视频免费播放| 色88888久久久久久影院野外|