*VAR
- это запись таблицы символов для следующего:
(также имеется слот для дескриптора файла, дескриптора каталога, формата и т. Д.)
Поскольку в них хранится группа переменных разных типов, записи таблицы символов называются «typeglobs», или для краткости «globs».
Назначение ссылки на глобус устанавливает слот соответствующего типа для указанной переменной. Это означает, что назначение ссылки на скаляр для *VAR
устанавливает *VAR{SCALAR}
, значение, возвращаемое $VAR
. Поскольку вы передаете ссылку на константу, $VAR
возвращает эту константу.
*VAR = *OTHER;
, с другой стороны, делает имя левой стороны псевдонимом имени правой стороны.
-
$VAR
эквивалентно $OTHER
.
-
@VAR
эквивалентно @OTHER
.
-
%VAR
эквивалентно %OTHER
.
-
&VAR
эквивалентно &OTHER
.
- и т.д.
*VAR = 0;
рассматривается как *VAR = *{"0"};
, что означает *VAR = *0;
. Это означает, среди прочего, что $VAR
вернет имя текущего скрипта (как $0
).
Ссылка: Тип-глобы и дескрипторы файлов