Вызывается ли файл dl_load_file или нет? - PullRequest
2 голосов
/ 15 июля 2011
unless defined(&dl_load_file);

Вышеуказанное выглядит для меня неоднозначно, но на самом деле работает.

Как Perl узнает, стоит ли звонить сюда dl_load_file?

Ответы [ 2 ]

4 голосов
/ 15 июля 2011

Это просто особый случай в синтаксисе Perl. Если у вас есть defined(&identifier) или defined &identifier, он проверяет существование подпрограммы с именем identifier, не вызывая ее, даже если &identifier обычно вызывает подпрограмму.

defined &identifier(), с другой стороны, вызывает вызов подпрограммы и затем проверяет ее возвращаемое значение. Парень после идентификатора делает его вызовом функции.

0 голосов
/ 15 июля 2011

Я думаю, что нет вызова - это просто проверка, определена ли эта функция или нет

Интерпретатор Perl знает это с помощью Таблицы символов

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