我应该如何在Perl中使用“我的”关键字?
我不断地在例子Perl脚本的在线variables名称前面看到“my”关键字,但我不知道这意味着什么。 我尝试在网上阅读手册页和其他网站,但是鉴于我如何使用它和手册之间的区别,我很难辨别它是什么。
例如,它用来获得这个post中数组的长度: 在Perl中查找一个数组的大小
但手册说:
我声明列出的variables是本地(词法)封闭块,文件,或评估。 如果列出多个值,则列表必须放在括号内。
它做了什么,它是如何使用的?
my
限制了一个variables的范围 。 variables的范围是可以看到的地方。 将variables的范围减less到需要variables的位置是良好编程的一个基本方面。 它使得代码更具可读性并且更less出错,并且带来了一系列派生的好处。
如果你没有使用my
声明一个variables,将会创build一个全局variables。 这是要避免的。 使用use strict;
告诉Perl你想阻止隐式创build全局variables,这就是为什么你应该总是使用use strict;
(并use warnings;
)在您的程序。
相关阅读: 为什么use strict;
并use warnings;
?
快速总结: my
创build一个新的variables, local
临时修改一个variables的值
在下面的例子中,$ :: a引用'global'命名空间中的$ a。
$a = 3.14159; { my $a = 3; print "In block, \$a = $a\n"; print "In block, \$::a = $::a\n"; } print "Outside block, \$a = $a\n"; print "Outside block, \$::a = $::a\n"; # This outputs In block, $a = 3 In block, $::a = 3.14159 Outside block, $a = 3.14159 Outside block, $::a = 3.14159
即local
临时更改variables的值,但只在其存在的范围内。
资料来源: http : //www.perlmonks.org/? node_id = 94007
更新
关于our
和my
区别请看
- 我和我们在Perl中有什么区别?
(感谢ThisSuitIsBlackNot )。
通过my()的私有variables是我的主要文档。
在你提到的数组大小的例子中,它不用于查找数组的大小。 它用来创build一个新的variables来保存数组的大小。