Т.е. начиная со следующего перестает работать и значение больше не
появляется...
Пишет тоже самое:
... failed: "Can't call method "header_in" on an undefined value at (eval 5)
line 3...
А еще такой момент.
Переменные не могут быть установлены из модуля
если они заранее не проинциализированы.
Т.е. приходится прибегать к трюку:
perl_set $a 'sub {return ""; }';
perl_set $b 'sub {return ""; }';
perl_set $c module::setup;
а в модуле уже:
sub setup {
$r->variable("a", 'A-value');
$r->variable("b", 'B-Value');
return 'C-value';
};
(просто в реальном примере процедура определения a,b,c - комплексная,
а значения нужны по отдельности)
В 0.4.14 исправлено.
Иначе вылетает еще при запуске
Restarting NGINX...
2006/11/24 20:33:50 [emerg] 24258#0: unknown "a" variable
Attempt to free unreferenced scalar: SV 0x644fa0, Perl interpreter: 0x582950.
Attempt to free unreferenced scalar: SV 0x644db0, Perl interpreter: 0x582950.
Нужно создать эти переменные на уровне server или location:
location / {
set $a "";
set $b "";
}
Можно и perl_set, но set дешевле.
Игорь Сысоев
http://sysoev.ru