加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl中的my和our

发布时间:2020-12-16 00:20:27 所属栏目:大数据 来源:网络整理
导读:? ? ? ? ? ? ? ? ? ? ??our 和 my 一样,都是对变量的声明,? 不过 our 声明的是包全局变量,? 而 my 声明的是词法变量。? 不过,经过 our 声明的变量,它会变得像一个词法变量一样,? 其实这也是 our 存在的目的:用来欺骗 strict pragma,使 strict 以为它
? ? ? ? ? ? ? ? ? ? ??our 和 my 一样,都是对变量的声明,? 不过 our 声明的是包全局变量,? 而 my 声明的是词法变量。? 不过,经过 our 声明的变量,它会变得像一个词法变量一样,? 其实这也是 our 存在的目的:用来欺骗 strict pragma,使 strict 以为它是一个词法变量,其实却不是。? 有一个简单的办法可以理解 our:? 1,你就把 our 声明的变量和 my 声明的当成一样。? 2,记住 our 和 my 的区别:our 声明的是一个包全局变量,因此在符号表中存储(可以通过全限定在任何地方访问),而 my 声明的是一个真正的词法变量,只能在闭合块中访问。 my 和 our 的区别:? use strict;? my $var;? $var = 1;? {? ? ? my $var;? ? ? $var = 2;? ? ? print $var,"n";? }? print $var,"n";? output? 2? 1? ? use strict;? our $var;? $var = 1;? {? ? ? our $var;? ? ? $var = 2;? ? ? print $var,"n";? output? 2? 2? our (或者什么修饰都没有)声明的是“包全局变量”,它的是“依附”在“包”上面的,它的存储位置是“包符号表”,? my 声明的是“词法变量”,它是“依附”在“代码块”上的,它的存储位置是“代码块”的“变量标签薄”,代码块是不不可以访问的,所以词法变量同样也不可以访问。? 但是包全局变量就不同了,用全限定就可以访问。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读