亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Perl > 正文

perl中my和our的區別分析

2020-06-04 20:31:00
字體:
來源:轉載
供稿:網友

perl中our的用法
require 5.006
當版本號小于 5.006 的時候,會返回失敗,從而導致模塊加載失敗。
所以它的作用就是保證模塊調用環境的 Perl 版本。

our 和 my 一樣,都是對變量的聲明,
不過 our 聲明的是包全局變量,
而 my 聲明的是詞法變量。

不過,經過 our 聲明的變量,它會變得像一個詞法變量一樣,
其實這也是 our 存在的目的:用來欺騙 strict pragma,使 strict 以為它是一個詞法變量,其實卻不是。

有一個簡單的辦法可以理解 our:
1,你就把 our 聲明的變量和 my 聲明的當成一樣。
2,記住 our 和 my 的區別:our 聲明的是一個包全局變量,因此在符號表中存儲(可以通過全限定在任何地方訪問),而 my 聲明的是一個真正的詞法變量,只能在閉合塊中訪問。

代碼例子
代碼如下:
my $var = 1;

{
    my $var = 2;
    print $var, "/n";
}

print $var, "/n";

輸出:

2

1
代碼如下:
our $var = 1;

{
    our $var = 2;
    print $var, "/n";
}

print $var, "/n";

輸出:

2

2
perl中our的用法
其實,our 的出現有它的歷史,
Perl 和別的語言不同,可以隨便聲明變量,
在 Perl 4 那個時代,根本就不需要 my 什么的,
隨便寫個名字,就是變量了。
在 Perl 5 中仍然如此,除非你用 my 明確聲明為詞法變量,否則所有的變量都是(包)全局變量,而且可以不聲明直接使用。
但是,這樣有個壞處,那就是萬一不小心寫錯名字了,或者解符號引用的時候,字符串運算錯了,都會造成很多麻煩(因為按照 Perl 5 語法,這些都是正確的,其結果就是產生一個新的變量,很顯然,這不是你想要的目的。)

所以,為了解決這些問題,在 Perl 5 中就引入了 strict 和 warnings 兩個 pragma,它們的作用,就是限制變量不聲明直接使用,
經過 strict 和 warnings 限制后,所有沒有聲明的直接使用的變量都會報錯。但是 my 聲明的變量又是局部變量,local 又不能創造變量,
所以,我們就沒法使用全局變量了(注1),
因此就又引入了 our,our 的作用就是聲明一個全局變量,但是讓 strict 和 warnings 以為它是詞法變量,因此 our 聲明的變量也是詞法作用域的。但是實際上它是全局變量。

注1:
如果不使用 our,我們有兩種辦法可以創建全局變量:
1,用 no strict "vars" 臨時關掉 strict pragma,聲明完了再用 use strict "vars" 打開。
2,用變量的全限定名稱,如 $main::var 或者 $foo::bar 這樣子。

------------------------------------------------------------------------------------

use
package
our
三者之間無任何關系。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产精品成人精品| 日韩av在线资源| 欧美性生活大片免费观看网址| 成人福利在线观看| 国产91精品久久久久| 亚洲天堂成人在线| 一区二区三区高清国产| 欧美巨乳美女视频| 日韩高清人体午夜| 日av在线播放中文不卡| 国产精品美女主播在线观看纯欲| 久久精品中文字幕一区| 精品香蕉在线观看视频一| 成人xxxxx| 国模叶桐国产精品一区| 激情懂色av一区av二区av| 日韩在线视频一区| 国产一区欧美二区三区| 久久久成人的性感天堂| 欧美猛交ⅹxxx乱大交视频| 国产精品入口免费视频一| 亚洲香蕉成人av网站在线观看| 精品久久久久久亚洲精品| 国产精品偷伦视频免费观看国产| 欧美性受xxxx黑人猛交| 亚洲少妇中文在线| 精品福利在线看| 日韩av不卡电影| 国产精品日本精品| 81精品国产乱码久久久久久| 欧美精品18videos性欧美| 久久精品91久久久久久再现| 欧美日韩在线观看视频| 国产精品一区二区久久| 国产精品久久久久久av福利软件| 91精品久久久久久久| 日韩黄色高清视频| 国产精品自拍网| 亚洲大尺度美女在线| 欧美在线不卡区| 亚洲精品在线91| 亚洲最新中文字幕| 日韩中文字幕精品视频| 欧美xxxx综合视频| 欧美中文在线字幕| 亚洲免费成人av电影| 亚洲天堂视频在线观看| 九色成人免费视频| 亚洲精品自拍偷拍| 亚洲成人久久网| 欧美性感美女h网站在线观看免费| 成人福利视频网| 国产日韩在线亚洲字幕中文| 91av国产在线| 中文字幕欧美日韩| 美女撒尿一区二区三区| 久久免费福利视频| 精品国产户外野外| 久久精品视频va| 亚洲精品福利在线观看| 97**国产露脸精品国产| 欧美制服第一页| 日本不卡免费高清视频| 亚洲性av网站| 欧美精品激情在线观看| 亚洲国产成人精品电影| 91中文字幕在线观看| 亚洲综合视频1区| 亚洲色图综合网| 日韩精品免费视频| 亚洲国产婷婷香蕉久久久久久| 欧美亚洲在线观看| 久久久久久国产精品久久| 欧美成人精品不卡视频在线观看| 日韩av最新在线观看| 久久综合伊人77777尤物| 一本大道香蕉久在线播放29| 美女av一区二区三区| 国产精品福利在线| 亚洲激情视频网| 成人av.网址在线网站| 91在线观看免费高清| 97碰碰碰免费色视频| 黄色精品在线看| 久久亚洲欧美日韩精品专区| 亚洲一区二区三区sesese| 久久69精品久久久久久国产越南| 国产盗摄xxxx视频xxx69| 伊人一区二区三区久久精品| 欧美激情精品久久久久久免费印度| 中文字幕一区二区三区电影| 97超碰蝌蚪网人人做人人爽| 欧美日韩国产成人| 97碰在线观看| 在线精品播放av| 日韩国产中文字幕| 国产婷婷97碰碰久久人人蜜臀| 欧美丰满少妇xxxxx| 国产在线精品播放| 国产日韩视频在线观看| 91在线精品播放| 伊人久久精品视频| 亚洲a级在线播放观看| 亚洲精品www久久久久久广东| 日本不卡视频在线播放| 另类专区欧美制服同性| www.日本久久久久com.| 欧美激情国内偷拍| 亚洲欧美日韩视频一区| 国产精品网红福利| 久久久精品国产亚洲| 久久五月天综合| 国产91成人video| 欧美巨乳美女视频| 国产精品人成电影| 欧美风情在线观看| 主播福利视频一区| 欧美亚洲视频在线看网址| 亚洲跨种族黑人xxx| 国产在线视频欧美| 日韩精品一区二区三区第95| 久久黄色av网站| 亚州国产精品久久久| 黑人巨大精品欧美一区二区一视频| 中文字幕av日韩| 亚洲a在线观看| 日韩精品视频三区| 欧美中文字幕视频在线观看| 色综合亚洲精品激情狠狠| 久久免费国产视频| 日本三级久久久| www.久久草.com| 超在线视频97| 国产成人亚洲综合91| 成人福利视频网| 久久久久久成人| 精品女同一区二区三区在线播放| 欧美黄色片视频| 亚洲男人的天堂在线播放| 97婷婷大伊香蕉精品视频| 日韩成人在线视频| 色妞色视频一区二区三区四区| 97精品视频在线| 欧美三级欧美成人高清www| 69av成年福利视频| 国产精品成人观看视频国产奇米| 国产精品www| 91福利视频在线观看| 亚洲视频视频在线| 亚洲午夜精品久久久久久久久久久久| 亚洲日韩中文字幕在线播放| 午夜欧美不卡精品aaaaa| 亚洲美女av网站| 久久成人亚洲精品| 亚洲欧美制服综合另类| 久久久av网站| 韩国日本不卡在线| 欧美第一黄网免费网站| 国产在线精品播放| 亚洲色图25p| 日韩在线视频一区| 91免费的视频在线播放| 九九热r在线视频精品| 日韩专区中文字幕|