设为首页 收藏本站
查看: 785|回复: 0

[经验分享] [微]perl variable system

[复制链接]

尚未签到

发表于 2017-5-17 11:02:08 | 显示全部楼层 |阅读模式
  1.perl有两套变量系统。一由our声明,又叫全局/包/符号表变量.二是my变量,又叫私有/局部/词法变量。
  2.perl4.0时,只有包变量。且没有our,没有use strict 'vars';
  3.perl4.0时,程序员们终于受不了了(想像一下没有私有变量的日子),于是引入了一个轻量级的解决方案: local。
  4.到目前为止,你只能local一个包变量,在所在块中,你可以尽情的操弄它,出了这个块,它还是原来的它。
  5.local的效果是创建了一个dynamic scope,可能只有1%的情况会使用它。具体请见http://perl.plover.com/local.html
  6.显然块+loca只能解决部分问题,程序员们一直在骂娘。
  7.perl 5.0+, 局部变量系统终于被实现,但local已经被占,于是使用my,取其“私有”之意。
  8.my变量的范围(可见性)可以通过看程序文本确定:包含其声明的最小块。因此被称作词法变量。
  9. 两套变量系统导致的结果是: 光秃秃的全局变量声明时赋值很容易被误解为私有变量的某一次赋值。于是加入了use strict 'vars'语法检查。
  10. use strict 'vars'强制包变量必须带着包的名字。
  11. 负责实现PackageNameIsVeryLongAndPackageVariablesAreEveryWhere这个包的程序员开始骂娘。
  12.于是引入了 no strict vars qw/$a $b/;
  13. perl程序员依然在骂娘,原因是怪怪的perl连声明个变量都很怪,被嘲了。。。
  14.perl5.6终于引入了our。
  15.our变量被称为符号表变量,因为会出现在包的符号表中。而my变量不会。
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-378458-1-1.html 上篇帖子: 用RPM发布Perl应用 下篇帖子: perl的语言特点
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表