ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Как запустить perl-програ мму в nginx



ну да ) первые 3 вопроса из за не подключенных модулей ) в принципе
можно и без них.
Dump из за YAML http://search.cpan.org/~ingy/YAML-0.73/lib/YAML.pm
uri_unescape из за  URI::Escape
http://search.cpan.org/~gaas/URI-1.58/URI/Escape.pm

4 описано в документации $r->header_only -- метод определяет, нужно ли
передавать клиенту только заголовок ответа или весь ответ.




5 августа 2011 г. 9:33 пользователь Vladislav Vladimirovich
<tvword@xxxxxxxxx> написал:
>
>
> 4 августа 2011 г. 23:12 пользователь Денис Ильиных <greyhard@xxxxxxxxx>
> написал:
>>
>> попробуйте такой пример. Работает только с GETом )
>> use YAML;
>>
>> sub handler {
>>    my $r = shift;
>>
>>    my %qparam;
>>    my @arr = split('&',uri_unescape($r->args));
>>    for(@arr){
>>        my @var = split('=',$_);
>>        $qparam{$var[0]}=$var[1];
>>    }
>>
>>    $r->header_out("Content-Type","text/html; charset=utf-8");
>>    $r->send_http_header();
>>
>>    $r->print(Dump(%qparam));
>>    $r->print($r->uri);
>>
>>    return OK;
>>
>> }
>>
>>
>> localhost:80/nginx/test/test/?a=1&b=2
>
> Благодарю! Получилось. Правда есть нюансы. Окончательный вариант такой:
> package perl_module_nginx_my;
> use nginx;
> sub handler {
>     my $r = shift;
>     $r->header_out("Content-Type","text/html; charset=utf-8");
>     $r->send_http_header();
>     return OK if $r->header_only;
>     my %qparam;
>     my @arr = split('&',$r->args);
>     for(@arr){
>        my @var = split('=',$_);
>        $qparam{$var[0]}=$var[1];
>     }
>     $r->print("hello!\n<br/>");
>     $r->print(join(":",%qparam)) ;
>     $r->print($r->uri);
>     return OK;
> }
> 1;
> __END__
> ________________________________________________________
> Теперь нюансы:
> 1. use YAML подключить не получилось. Его почему-то у меня нет. Может
> отдельно надо ставить, но и без него в принципе можно обойтись.
> 2. uri_unescape не работает, возможно потому что не подключен модуль YAML.
> Но это не критично. Для передачи простых параметров и так пойдёт...
> 3. Dump почему-то тоже не работает. Не знаю зачем он там нужен, но я сделал
> разбивку массива хэшей через join.
> 4. Не совсем понятно, зачем в примере модуля hello вот эта строка - return
> OK if $r->header_only; На всякий случай оставил ее у себя.
> ________________________________________________________
> Спасибо за помощь!
>
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@xxxxxxxxx
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
>
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.