> Беру код из примера: > http://www.sysoev.ru/nginx/docs/http/ngx_http_perl_module.html > > Выдает ошибку: > > 2006/11/24 12:01:40 [error] 30314#0: *3 call_sv("
> > sub { > my $r = shift; > my $ua = $r->header_in("User-Agent"); > > return "" if $ua =~ /Opera/; > return "1" if $ua =~ / MSIE [6-9]\.\d+/;
> return ""; > } > > ") failed: "Can't call method "header_in" on an undefined value at (eval > 2) line 3." > > Оказывается, что параметр запроса не передается в функцию:
> perl_set $test 'sub { my $r = shift; return "($r)" }'; > в итоге $test = '()'; > > В чем проблема? > > nginx version: nginx/0.4.13 > built by gcc 4.1.1 20060525 (Red Hat
4.1.1-1) > > $perl -v > This is perl, v5.8.8 built for x86_64-linux-thread-multi
По-видимому, начиная с 0.3.38, nginx не работал с трэдовым перлом. Патч прилагается.