Perl: где найти глубокие знания о переменной только для чтения, созданной * VAR = \ 0 - PullRequest
0 голосов
/ 07 ноября 2018

Я выучил Perl как:

*VAR = \0;

создать только для чтения $VAR в ответе https://stackoverflow.com/a/35083240/2492255, Я пытаюсь найти больше документов, чтобы понять, почему $VAR только для чтения в этом случае, но без удачи, кто-то может помочь объяснить или указать мне какие-то документы на эту тему?

1 Ответ

0 голосов
/ 07 ноября 2018

*VAR - это запись таблицы символов для следующего:

  • $VAR
  • @VAR
  • %VAR
  • &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).


Ссылка: Тип-глобы и дескрипторы файлов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...