国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Perl > 正文

perl之范圍聲明our-my-local的簡介

2020-02-23 19:45:45
字體:
供稿:網(wǎng)友

Perl支持動(dòng)態(tài)范圍聲明,動(dòng)態(tài)范圍也擴(kuò)展到最里面的閉包塊,但是這里的“閉包”是在運(yùn)行時(shí)動(dòng)態(tài)定義的,今天武林技術(shù)頻道小編和大家分享perl之范圍聲明our-my-local的簡介。

老實(shí)說,這個(gè)東西有點(diǎn)折騰人,主要是書上的表述很晦澀,其實(shí)搞懂不難。
?
our,"把名字限于某個(gè)范圍“,其實(shí)就是明確聲明一個(gè)"全局變量",雖然是在某個(gè)模塊或者函數(shù)里面定義的,外面的也可以訪問,如果已經(jīng)聲明過了,再次用"our",表示此處用的是全局的那個(gè),不是同名的私有或者局部變量

?

our $PROGRAM_NAME = "waiter";
{
my? $PROGRAM_NAME = "something";
our $PROGRAM_NAME = "server"; #這里的our和外面的相同,和前句不同。
# 這里調(diào)用的代碼看到的是"server"
}
# 這里執(zhí)行的代碼看到的仍然是"server".


my ,"把名字和值都限于限于某個(gè)范圍",簡單說,就是只能本層模塊或者函數(shù)可以看到這個(gè)變量,高一層的或者低一層的都看不到的。

?

?

?


sub greeting1{
??? my ($hello) = "How are you do?";
??? greeting2();
}
?
sub greeting2{
??? print "$hello/n";
}
$hello = "How are you doing?";
greeting2();
greeting1();
greeting2();


運(yùn)行結(jié)果:

?

?

?


How are you doing?
How are you doing?
How are you doing?


一個(gè) How are you do? 都沒有,在greeting1中call greeting2時(shí),greeting2看不到greeting1的私有$hello變量,只能看到外面的全局變量$hello
?
local,"把值局限于某個(gè)范圍",也有叫"動(dòng)態(tài)詞法范圍",有點(diǎn)不好懂。我的理解,就是本層和本層下層的函數(shù)可以看到本層的變量,但是本層上一層的不可以。到底范圍是多少,不僅取決于本層的函數(shù),還要看下一層的程序長度和深度,所以叫"動(dòng)態(tài)范圍"。

?

?

?


sub greeting1{
??? local ($hello) = "How are you do?";
??? greeting2();
}

?

sub greeting2{
??? print "$hello/n";
}
$hello = "How are you doing?";
greeting2();
greeting1();
greeting2();


運(yùn)行結(jié)果:

?

?

?


How are you doing?
How are you do?
How are you doing?


跟用 my 時(shí)不一樣了吧? 此時(shí)在greeting1調(diào)用greeting2時(shí),greeting2可以看到greeting1的局部變量$hello,外部的全局變量當(dāng)然就隱藏了。

以上就是perl之范圍聲明our-my-local的簡介,隨著IT行業(yè)的高速發(fā)展,目前編程人員的需求不斷增大,可以說是很有前景的一個(gè)專業(yè)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 子长县| 长葛市| 年辖:市辖区| 伊春市| 镇雄县| 临高县| 沽源县| 大悟县| 定远县| 通化市| 建阳市| 古浪县| 启东市| 元氏县| 沈丘县| 安宁市| 贡嘎县| 比如县| 绥江县| 大余县| 长汀县| 瑞丽市| 陕西省| 宜丰县| 榆林市| 庆安县| 甘德县| 察雅县| 民乐县| 内乡县| 永靖县| 建昌县| 湖口县| 永胜县| 布尔津县| 绍兴市| 娄底市| 交城县| 黄大仙区| 隆昌县| 吉林市|