弄清变量名字空间

perl里面有七种不同的包变量或类似变量的元素:标量变量,数组变量,散列变量,子程序名,格式名,文件句柄以及目录句柄。

这些不同德包变量各自拥有自己不同的名字空间。改变一种变量的值,并不会影响到其他同名的另一种变量。

#变量$a和数组变量@a是完全独立的两种东西
my $a = 1;
my @a=(1,2,3);

另外,perl程序中不同的包都有各自的独立一套命名空间。

文件句柄,格式名以及目录句柄不是以标点符号开头的,所以得依靠上下文来区分。各自完全独立,哪怕全都取名为TEST也是如此:

open TEST,'>',"$$.test" ;  #打开文件句柄TEST
print TEST "test data\n" ; #打印到文件句柄TEST

opendir TEST,".";            #名为TEST的目录句柄

#名为TEST的格式
format TEST = @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<@<<<<<<<<<<<@<<<<<<<<<<<
$name,$lo,$hi
原文地址:https://www.cnblogs.com/tjxwg/p/2913473.html