Что означает @$и $$ в Perl?

ОК, так что два вопроса о нечетном синтаксисе. Я работаю над старым кодом Perl, который нуждается в модификации, и я наткнулся на следующую строку:

@$tmp=split(/,/,$tmpVals);

Я понятия не имею, как это прочитать, похоже, что RHS разделяет переменную строку на, так что отлично, но это левая сторона, которую меня бросает. Что в мире @$, насколько я знаю, это не переменная по умолчанию. Кто-нибудь знает его значение?

И тогда есть $$, который я прочитал, как правило, представляет PID Perl. Однако в этом случае это происходит прямо перед утверждением/присваиванием. Имеет ли это эффект?

$$tmp=$row[1];

Спасибо заранее.

Ответ 1

То, что вы смотрите, это не специальные переменные perl, а примеры ссылок. Они описаны в perlref.

Это символические ссылки: Если $tmp содержит "myvar", то переменной @myvar будет присвоено значение. То же самое относится ко второму примеру.