我知道Perl中的my
是什么。它定义了一个变量,该变量仅存在于定义该变量的块的范围内。 our
是做什么的?our
与my
有何不同?
最佳答案
好问题: our
与 my
有什么区别,our
有什么作用?
综上所述:
从Perl 5开始可用, my
是一种声明非程序包变量的方法,它们是:
$package_name::variable
的形式访问变量。 另一方面,
our
变量是程序包变量,因此会自动:限定 namespace ,如
$package_name::variable
。 使用声明变量
our
允许您预先声明变量,以便在use strict
下使用它们,而不会出现拼写错误或编译时错误。从Perl 5.6开始,它已替换了仅文件作用域的过时的use vars
,而不是 our
的词法作用域。例如,
$x
中的package main
变量的正式合格名称是$main::x
。当脚本使用our $x
或$x
时,声明 use strict
允许您在声明的范围内使用裸use strict "vars"
变量而不会受到任何惩罚(即,没有导致的错误)。作用域可能是一个或两个或多个包,或者一个小块。关于perl - Perl中的 'my'和 'our'有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/845060/