好的,关于奇怪语法的两个问题。我正在研究一些需要修改的旧Perl代码,我遇到了以下几行:
@$tmp=split(/,/,$tmpVals);
我不知道怎么读这个,看起来RHS正在拆分变量字符串,所以没关系,但它是左手边我被抛出。世界上的@$
是什么,据我所知,它不是默认变量。有人知道它的意义吗?
然后有$$
,我读过的通常代表Perl PID。但是,在这种情况下,它出现在veriable / assignment语句之前。它有相关的影响吗?
$$tmp=$row[1];
提前致谢。
答案 0 :(得分:15)
您所看到的不是特殊的perl变量,而是引用的实例。它们在perlref中描述。
这些是符号引用:如果$tmp
包含“myvar”,则将分配变量@myvar
。这同样适用于第二个例子。