我应该如何在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

更新

关于ourmy区别请看

  • 我和我们在Perl中有什么区别?

(感谢ThisSuitIsBlackNot )。

通过my()的私有variables是我的主要文档。

在你提到的数组大小的例子中,它不用于查找数组的大小。 它用来创build一个新的variables来保存数组的大小。