Гость
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Perl: Использование массивов-констант / 2 сообщений из 2, страница 1 из 1
09.06.2019, 22:02
    #39824676
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl: Использование массивов-констант
В модуле у меня определен небольшой массив:
Код: plaintext
use constant IVI_API_HEADERS => [...];
Далее в коде модуля мне нужно с этим массивом сделать определенные вещи:
Код: plaintext
$req->header($_) foreach (@{IVI_API_HEADERS});
Но в таком виде ругается на необъявленную переменную.
Вместо этого срабатывает такая "магия":
Код: plaintext
$req->header($_) foreach (@{+IVI_API_HEADERS});
Работать то оно работает, но хотелось бы понимать, что означает символ "+".
Тут поясняется что Use ... to prevent the bareword quoting mechanism from kicking in. , но смысл фразы от меня ускользает.
Это специальный синтаксис для использования констант?
Или это способ обмануть парсер, не меняя поведения кода?
...
Рейтинг: 0 / 0
19.06.2019, 10:48
    #39828195
volodin661
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl: Использование массивов-констант
конструкция use constant реализована через inline sub,
соответственно нужны способы для различения вызова подпрограммы от использования простого текстового литерала в неявных случаях.
Таковыми способами являются: '+' перед именем; '()' после имени
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Perl: Использование массивов-констант / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]