人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

Perl教學(14)Perl5的包與模塊之3

Perl教學(14)Perl5的包與模塊之3

更新時間:2022-08-24 文章作者:未知 信息來源:網絡 閱讀次數:

5、指定無當前包
在Perl 5中,可以用如下語句指定無當前包:
package;
這時,所有的變量必須明確指出所屬包名,否則就無效--錯誤。
$mypack::var = 21; #ok
$var = 21; #error - no current package
這種情況直到用package語句指定當前包為止。
6、包和子程序
包的定義影響到程序中的所有語句,包括子程序,如:

package mypack;
subroutine mysub {
local ($myvar);
# stuff goes here
}
這里,mysub和myvar都是包mypack的一部分。在包mypack外調用子程序mysub,則要指定包:$mypack'mysub。
可以在子程序中切換包:

package pack1;
subroutine mysub {
$var1 = 1;
package pack2;
$var1 = 2;
}
這段代碼創建了兩個變量$var1,一個在包pack1中,一個在包pack2中,包中的局域變量只能在其定義的子程序等語句塊中使用,像普通的局域變量一樣。
7、用包定義私有數據
包最通常的用途是用在含有子程序和子程序所使用的全局變量的文件中,為子程序定義這樣的包,可以保證子程序使用的全局變量不可在其它地方使用,這樣的數據即為私有數據。更進一步,可以保證包名不可在其它地方使用。私有數據例:

1 : package privpack;
2 : $valtoprint = 46;
3 :
4 : package main;
5 : # This function is the link to the outside world.
6 : sub printval {
7 : &privpack'printval();
8 : }
9 :
10: package privpack;
11: sub printval {
12: print ("$valtoprint\n");
13: }
14:
15: package main;
16: 1; # return value for require
此子程序只有在調用printval后才能產生輸出。
該文件分為兩個部分:與外界聯系的部分和私有部分。前者為缺省的main包,后者為包privpack。第6~8行定義的子程序printval可被其它程序或子程序調用。printval輸出變量$valtoprint的值,此變量僅在包privpack中定義和使用。第15、16行確保其被其它程序用require語句包含后工作正常,15行將當前包設置回缺省包main,16行返回非零值使require不報錯。

8、包和系統變量
下列變量即使從其它包中調用,也在main包中起作用:

·文件變量STDIN, STDOUT, STDERR 和 ARGV
·變量%ENV, %INC, @INC, $ARGV 和 @ARGV
·其它含有特殊字符的系統變量
9、訪問符號表
在程序中查找符號表可用數組%_package,此處package為想訪問的符號表所屬的包名。例如%_main含有缺省的符號表。
通常不需要親自查找符號表。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 奉新县| 阿拉善右旗| 德安县| 全州县| 清涧县| 石台县| 仁化县| 株洲县| 库尔勒市| 海安县| 桐庐县| 双牌县| 平昌县| 梓潼县| 德化县| 泸州市| 肥乡县| 化隆| 肇庆市| 漳州市| 陕西省| 汕尾市| 长乐市| 黔江区| 扎兰屯市| 兴安县| 山丹县| 五大连池市| 依兰县| 清新县| 两当县| 徐州市| 太谷县| 永兴县| 桦甸市| 双峰县| 吉安县| 西昌市| 郎溪县| 琼结县| 澄迈县|