Re: Установить переменную с помощью perl внутри location
Maxim Dounin
mdounin на mdounin.ru
Чт Июл 16 17:45:25 UTC 2015
Hello!
On Thu, Jul 16, 2015 at 03:14:33PM +0300, Daniel Podolsky wrote:
> > При правильном выполнении должен проставиться заголовок X-MY-VAR равный
> > =CCCC=, но по факту ставится число 0.
> > Если убрать "=" из return, то заголовок просто не ставится (видимо, пустая
> > переменная).
> в перле "+" - не оператор конкатенации строк, извините.
Поработаю К.О.:
Это, в частности, означает, что результат 0 - правильный, и всё
работает ровно так, как написано.
> ну и мне кажется, что $outer_variable выполнится раньше, чем код location
Нет. Код, который вычисляет значение перловой переменной,
выполняется в момент обращения к этой переменной. Т.е., в случае
add_header он выполнится только тогда, когда будет делаться
add_header - уже в процессе возврата ответа.
Отмечу также, что код perl_set выполняется только один раз за
запрос, и результат выполнения - кешируется до окончания запроса.
Соответственно, ранее звучавшая в этом треде рекомендация
сохранять значение с помощью set - избыточна.
--
Maxim Dounin
http://nginx.org/
Подробная информация о списке рассылки nginx-ru