<br><br><div class="gmail_quote">4 августа 2011 г. 23:12 пользователь Денис Ильиных <span dir="ltr"><<a href="mailto:greyhard@gmail.com">greyhard@gmail.com</a>></span> написал:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
попробуйте такой пример. Работает только с GETом )<br>
use YAML;<br>
<br>
sub handler {<br>
my $r = shift;<br>
<br>
my %qparam;<br>
my @arr = split('&',uri_unescape($r->args));<br>
for(@arr){<br>
my @var = split('=',$_);<br>
$qparam{$var[0]}=$var[1];<br>
}<br>
<br>
$r->header_out("Content-Type","text/html; charset=utf-8");<br>
$r->send_http_header();<br>
<br>
$r->print(Dump(%qparam));<br>
$r->print($r->uri);<br>
<br>
return OK;<br>
<br>
}<br>
<br>
<br>
localhost:80/nginx/test/test/?a=1&b=2<br></blockquote><div><br></div><div>Благодарю! Получилось. Правда есть нюансы. Окончательный вариант такой:</div><div><br></div><div><div>package perl_module_nginx_my;</div><div>
<br></div><div>use nginx;</div><div><br></div><div>sub handler {</div><div><br></div><div> my $r = shift;</div><div><br></div><div> $r->header_out("Content-Type","text/html; charset=utf-8");</div>
<div> $r->send_http_header();</div><div> return OK if $r->header_only;</div><div><br></div><div> my %qparam;</div><div> my @arr = split('&',$r->args);</div><div><br></div><div> for(@arr){</div>
<div> my @var = split('=',$_);</div><div> $qparam{$var[0]}=$var[1];</div><div> }</div><div><br></div><div> $r->print("hello!\n<br/>");</div><div><br></div><div> $r->print(join(":",%qparam))<span class="Apple-tab-span" style="white-space:pre"> </span>;</div>
<div> $r->print($r->uri);</div><div><br></div><div> return OK;</div><div><br></div><div>}</div><div><br></div><div>1;</div><div>__END__</div></div><div>________________________________________________________</div>
<div><br></div><div>Теперь нюансы:</div><div>1. use YAML подключить не получилось. Его почему-то у меня нет. Может отдельно надо ставить, но и без него в принципе можно обойтись.</div><div>2. uri_unescape не работает, возможно потому что не подключен модуль YAML. Но это не критично. Для передачи простых параметров и так пойдёт...</div>
<div>3. Dump почему-то тоже не работает. Не знаю зачем он там нужен, но я сделал разбивку массива хэшей через join.</div><div>4. Не совсем понятно, зачем в примере модуля hello вот эта строка - return OK if $r->header_only; На всякий случай оставил ее у себя. </div>
<div><br></div><div>________________________________________________________</div><div><br></div><div>Спасибо за помощь!</div><meta http-equiv="content-type" content="text/html; charset=utf-8"><div><br></div><div><br></div>
</div>