regexp после regexp в perl

Igor Sysoev is at rambler-co.ru
Mon Dec 10 11:39:50 MSK 2007


On Mon, Dec 10, 2007 at 11:11:23AM +0300, Domrachev Ivan wrote:

> Здравствуйте, Igor.
> 
> >> если cделать внутри perl_module один regexp, потом использовать
> > Прилагаемый патч должен помочь.
> 
> Спасибо!
> Во первых прошу простить. недоглядел.
> писал, что
> > теряются переменные
> это не так. переменные не потерялись. просто они:
> 1 не отображаются в вгете
> 2 не отображаются в дебаге (!)
> причина такая:
>         0x0040:  204f 4b0d 0a53 6572 7665 723a 206e 6769  .OK..Server:.ngi
>         0x0050:  6e78 2f30 2e36 2e31 370d 0a44 6174 653a  nx/0.6.17..Date:
>         0x0060:  204d 6f6e 2c20 3130 2044 6563 2032 3030  .Mon,.10.Dec.200
>         0x0070:  3720 3037 3a32 383a 3036 2047 4d54 0d0a  7.07:28:06.GMT..
>         0x0080:  436f 6e74 656e 742d 5479 7065 3a20 7465  Content-Type:.te
>         0x0090:  7874 2f68 746d 6c0d 0a43 6f6e 7465 6e74  xt/html..Content
>         0x00a0:  2d4c 656e 6774 683a 2032 0d0a 4c61 7374  -Length:.2..Last
>         0x00b0:  2d4d 6f64 6966 6965 643a 2054 6875 2c20  -Modified:.Thu,.
>         0x00c0:  3239 204e 6f76 2032 3030 3720 3037 3a31  29.Nov.2007.07:1
>         0x00d0:  323a 3137 2047 4d54 0d0a 436f 6e6e 6563  2:17.GMT..Connec
>         0x00e0:  7469 6f6e 3a20 6b65 6570 2d61 6c69 7665  tion:.keep-alive
>         0x00f0:  0d0a 7465 7374 5f73 313a 202f 3100 0d0a  ..test_s1:./1...
>                                                  ^^
>         0x0100:  7465 7374 5f73 323a 2032 3300 0d0a 7465  test_s2:.23...te
>                                             ^^
>         0x0110:  7374 5f73 333a 202f 310d 0a74 6573 745f  st_s3:./1..test_
>         0x0120:  7334 3a20 3233 0d0a 7465 7374 5f72 6573  s4:.23..test_res
>         0x0130:  756c 743a 2031 0d0a 4163 6365 7074 2d52  ult:.1..Accept-R
>         0x0140:  616e 6765 733a 2062 7974 6573 0d0a 0d0a  anges:.bytes....
>         0x0150:  3829                                     8)
> 
> т.е. в переменных получался нулевой байт и весь последующий вывод в
> дебаге отсекался:
> 2007/12/10 07:36:24 [debug] 54285#0: *175 HTTP/1.1 200 OK
> Server: nginx/0.6.17
> Date: Mon, 10 Dec 2007 07:36:24 GMT
> Content-Type: text/html
> Content-Length: 2
> Last-Modified: Thu, 29 Nov 2007 07:12:17 GMT
> Connection: keep-alive
> test_s1: /1
> 
> 2007/12/10 07:36:24 [debug] 54285#0: *175 write new buf t:1 f:0 0826C61C, pos 0826C61C, size: 284 file: 0, size: 0
> 
> как понимаю после первого регекспа сохранилась длинна переменных (но
> не значение), а после второго содержимое $1 и $2 затёрлось.
> 
> во вторых патч не помог: ни чего не изменилось. в дебаге:
> # cat error.log |grep perl
> 2007/12/10 07:42:40 [debug] 61821#0: *2 perl variable handler
> 2007/12/10 07:42:40 [debug] 61821#0: *2 perl variable done

Скорее всего, новый nginx.so не установился. В отладочном логе должны
быть строки "perl sv2str: ...".


-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list