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