perl中的my和our

前端之家收集整理的这篇文章主要介绍了perl中的my和our前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
                      our 和 my 一样,都是对变量的声明,  不过 our 声明的是包全局变量,  而 my 声明的是词法变量。  不过,经过 our 声明的变量,它会变得像一个词法变量一样,  其实这也是 our 存在的目的:用来欺骗 strict pragma,使 strict 以为它是一个词法变量,其实却不是。  有一个简单的办法可以理解 our:  1,你就把 our 声明的变量和 my 声明的当成一样。  2,记住 our 和 my 的区别:our 声明的是一个包全局变量,因此在符号表中存储(可以通过全限定在任何地方访问),而 my 声明的是一个真正的词法变量,只能在闭合块中访问。 my 和 our 的区别:  use strict;  my $var;  $var = 1;  {      my $var;      $var = 2;      print $var,"\n";  }  print $var,"\n";  output  2  1    use strict;  our $var;  $var = 1;  {      our $var;      $var = 2;      print $var,"\n";  output  2  2  our (或者什么修饰都没有)声明的是“包全局变量”,它的是“依附”在“包”上面的,它的存储位置是“包符号表”,  my 声明的是“词法变量”,它是“依附”在“代码块”上的,它的存储位置是“代码块”的“变量标签薄”,代码块是不不可以访问的,所以词法变量同样也不可以访问。  但是包全局变量就不同了,用全限定就可以访问。

猜你在找的Perl相关文章