中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Perl包是什么意思

發布時間:2021-12-06 10:05:32 來源:億速云 閱讀:226 作者:小新 欄目:開發技術

小編給大家分享一下Perl包是什么意思,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

 Perl包

Perl程序把變量和子程序的名稱存貯到符號表中,perl的符號表中名字的集合就稱為Perl包(package)。

1、Perl包的定義

在一個程序中可以定義多個Perl包,每個Perl包有一個單獨的符號表,定義語法為:
packagemypack;
此語句定義一個名為mypack的Perl包,從此以后定義的所有變量和子程序的名字都存貯在該Perl包關聯的符號表中,直到遇到另一個package語句為止。
每個符號表有其自己的一組變量、子程序名,各組名字是不相關的,因此可以在不同的Perl包中使用相同的變量名,而代表的是不同的變量。如:

$var=14;
packagemypack;
$var=6;
***個語句創建變量$var并存貯在main符號表中,第三個語句創建另一個同名變量$var并存貯在mypackPerl包的符號表中。

2、在Perl包間切換

在程序里可以隨時在Perl包間來回切換,如:

1:#!/usr/local/bin/perl  2:  3:packagepack1;  4:$var=26;  5:packagepack2;  6:$var=34;  7:packagepack1;  8:print("$var\n");

運行結果如下:

$program
26
$
第三行定義了Perl包pack1,第四行創建變量$var,存貯在Perl包pack1的符號表中,第五行定義新Perl包pack2,第六行創建另一個變量$var,存貯在Perl包pack2的符號表中。這樣就有兩個獨立的$var,分別存貯在不同的Perl包中。第七行又指定pack1為當前Perl包,因為Perl包pack1已經定義,這樣,所有變量和子程序的定義和調用都為該Perl包的符號表中存貯的名字。因此第八行對$var的調用為pack1Perl包中的$var,其值為26。

3、mainPerl包

存貯變量和子程序的名字的缺省符號表是與名為main的Perl包相關聯的。如果在程序里定義了其它的Perl包,當你想切換回去使用缺省的符號表,可以重新指定mainPerl包
packagemain;
這樣,接下來的程序就好象從沒定義過Perl包一樣,變量和子程序的名字象通常那樣存貯。

4、Perl包的引用

在一個Perl包中可以引用其它Perl包中的變量或子程序,方法是在變量名前面加上Perl包名和一個單引號,如:

packagemypack;  $var=26;  packagemain;  print("$mypack'var\n");

這里,$mypack'var為mypackPerl包中的變量$var。
注意:在Perl5中,Perl包名和變量名用雙冒號隔開,即$mypack::var。單引號引用的方式仍然支持,但將來的版本中未必支持。

5、指定無當前Perl包

在Perl5中,可以用如下語句指定無當前Perl包
package;
這時,所有的變量必須明確指出所屬Perl包名,否則就無效--錯誤。
$mypack::var=21;#ok
$var=21;#error-nocurrentpackage
這種情況直到用package語句指定當前Perl包為止。

6、Perl包和子程序

Perl包的定義影響到程序中的所有語句,Perl包括子程序,如:

packagemypack;  subroutinemysub{  local($myvar);  #stuffgoeshere  }

這里,mysub和myvar都是Perl包mypack的一部分。在Perl包mypack外調用子程序mysub,則要指定Perl包:$mypack'mysub。
可以在子程序中切換Perl包:

packagepack1;  subroutinemysub{  $var1=1;  packagepack2;  $var1=2;  }

這段代碼創建了兩個變量$var1,一個在Perl包pack1中,一個在Perl包pack2中,Perl包中的局域變量只能在其定義的子程序等語句塊中使用,像普通的局域變量一樣。

7、用Perl包定義私有數據

Perl包最通常的用途是用在含有子程序和子程序所使用的全局變量的文件中,為子程序定義這樣的Perl包,可以保證子程序使用的全局變量不可在其它地方使用,這樣的數據即為私有數據。更進一步,可以保證Perl包名不可在其它地方使用。

8、Perl包和系統變量

下列變量即使從其它Perl包中調用,也在mainPerl包中起作用:

文件變量STDIN,STDOUT,STDERR和ARGV
變量%ENV,%INC,@INC,$ARGV和@ARGV
其它含有特殊字符的系統變量

9、訪問符號表

在程序中查找符號表可用數組%_package,此處package為想訪問的符號表所屬的Perl包名。例如%_main含有缺省的符號表。
通常不需要親自查找符號表。

看完了這篇文章,相信你對“Perl包是什么意思”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

北流市| 嘉定区| 清徐县| 嘉善县| 黔江区| 阜宁县| 峨眉山市| 台州市| 准格尔旗| 汉源县| 五寨县| 叙永县| 澄城县| 安泽县| 梁山县| 长武县| 图木舒克市| 安陆市| 高要市| 合阳县| 武定县| 韩城市| 永宁县| 甘洛县| 孝感市| 调兵山市| 霍山县| 金秀| 江川县| 安福县| 巴彦淖尔市| 永丰县| 通州区| 呼图壁县| 盐源县| 天津市| 潜江市| 长顺县| 昌平区| 张北县| 郸城县|