麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Perl > 正文

perl中my和our的區(qū)別分析

2020-06-04 20:31:00
字體:
供稿:網(wǎng)友

perl中our的用法
require 5.006
當(dāng)版本號(hào)小于 5.006 的時(shí)候,會(huì)返回失敗,從而導(dǎo)致模塊加載失敗。
所以它的作用就是保證模塊調(diào)用環(huán)境的 Perl 版本。

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

不過,經(jīng)過 our 聲明的變量,它會(huì)變得像一個(gè)詞法變量一樣,
其實(shí)這也是 our 存在的目的:用來欺騙 strict pragma,使 strict 以為它是一個(gè)詞法變量,其實(shí)卻不是。

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

代碼例子
代碼如下:
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的用法
其實(shí),our 的出現(xiàn)有它的歷史,
Perl 和別的語言不同,可以隨便聲明變量,
在 Perl 4 那個(gè)時(shí)代,根本就不需要 my 什么的,
隨便寫個(gè)名字,就是變量了。
在 Perl 5 中仍然如此,除非你用 my 明確聲明為詞法變量,否則所有的變量都是(包)全局變量,而且可以不聲明直接使用。
但是,這樣有個(gè)壞處,那就是萬一不小心寫錯(cuò)名字了,或者解符號(hào)引用的時(shí)候,字符串運(yùn)算錯(cuò)了,都會(huì)造成很多麻煩(因?yàn)榘凑?Perl 5 語法,這些都是正確的,其結(jié)果就是產(chǎn)生一個(gè)新的變量,很顯然,這不是你想要的目的。)

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

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

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

use
package
our
三者之間無任何關(guān)系。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美一级做一级爱a做片性 久久久资源网 | 一级黄色淫片 | 国产精选在线 | 91成人久久 | 久久精品亚洲国产奇米99 | xxxx69hd一hd | 日本免费一区二区三区四区 | 欧美成人二区 | 国产一国产一级毛片视频在线 | 久久精品视频12 | 性大片1000免费看 | 亚洲国产精品高潮呻吟久久 | 国产91丝袜在线播放 | 久章草在线视频 | 手机av免费电影 | 综合99| 少妇一级淫片免费放播放 | 成人在线观看免费高清 | 一级一片免费 | 久久精品亚洲成在人线av网址 | 一区二区高清视频在线观看 | 羞羞视频免费入口网站 | 国产精品久久久久久久久久电影 | 午夜久久视频 | hd日本xxxx| 一区二区三区小视频 | 男女无套免费视频 | 国产98色在线 | 久久91亚洲精品久久91综合 | 久久久久久久久久久久免费 | 国产精品久久二区 | 成人精品久久 | 国内毛片视频 | 国产成人精品自拍视频 | 久久精品国产精品亚洲 | 日韩精品hd | 九九爱视频| 成人性视频免费网站下载软件 | 黄色av片三级三级三级免费看 | 操你视频| 黄色淫片 |