专注各种脚本编程
Baidu
加入收藏夹
本站内容有下面分类知识,欢迎您的到来^_^
shell相关:指令篇 基础篇 脚本欣赏 编程实例 shell问问 shell视频教程 技巧篇 水平测试 E文资料 vi编辑器 高级Bash脚本编程指南
其他:mysql perl c语言 oracle
当前位置:| 主页>perl>

perl变量作用域总结及补充

百度收藏 QQ搜藏

perl变量作用域总结

包变量总是全局的。它们有一个名字和一个包限定词。可以忽略包限定词,这样perl会使用默认的包,默认包可由package申明设定。对私有变量,请使用my。不要使用local,它已过时。

避免使用全局变量,因为它难以确保程序的2部分不会错误的使用对方的变量。

为了避免意外使用全局变量,请在程序里使用use strict 'vars'。它会检查并确保所有的变量要么是申明为私有的,要么明确使用了包限定词,要么明确使用use vars来申明。

补充

perl 5.6.0介绍了一个新的our(...)申明。它的语法与my()相同,它是use vars的代替品。

如果不深究细节,our()就类似于use vars;它的唯一影响是申明变量,以便它们免除strict 'vars'的检查。然而相对于use vars,它可能有2个优势:语法不那么怪异,影响是词法作用域。也就是说,它让stict检查失效的范围仅仅在当前块之内:

        use strict 'vars';
        {
          our($x);
          $x = 1;   # 这里使用全局变量$x没问题
        }
        $x = 2;     # 这里使用$x通常引起编译时错误

所以使用use vars '$x'申明时,可以在任何地方使用全局变量$x。our($x)仅仅允许在程序的某些块里申明全局变量$x,假如意外的在其他地方使用它,仍会导致错误。

上一篇:perl变量作用域-变量申明 下一篇:查询PERL模块安装的perl脚本

power by soyo123 2007-2008