nixp.ru v3.0

22 октября 2017,
воскресенье,
05:54:48 MSK

DevOps с компанией «Флант»
athilson написал 5 марта 2005 года в 20:43 (371 просмотр) Ведет себя как мужчина; открыл 16 тем в форуме, оставил 19 комментариев на сайте.

Товарищи!

поставил и настроил mod_perl

теперь при вызове localhost/do_it вызывается мой do_it.pm, но вот вопрос. Как мне при вызове localhost/do_it?page=main;lang=ru получить доступ к передаваемым параметрам (page и lang)?

заранее благодарен,

athilson

Дмитрий Шурупов


use CGI;
my $in=CGI->new;
my $page = $in->param('page');
my $lang =  $in->param('lang');
print "(page, lang) == ('$page', '$lang')\n";
/* альтернатива (без использования CGI; вытаскивает все параметры и кидает их в %rvars{'имя_параметра'}): */
my @vars=split(/&|;/,$ENV{'QUERY_STRING'}); my %rvars;
foreach (@vars){ $rvars{$1}=$2 if ($_=~/(^.+)=(.*)$/); }
foreach (keys %rvars){ print "$_ == '$rvars{$_}'\n"; }
athilson

OK.

я думал, что use CGI можно использовать только для CGI приложений, а у меня mod (sub handler {…}).

anonymous
Dmitry Shurupov

use CGI;
my $in=CGI->new;
my $page = $in->param('page');
my $lang =  $in->param('lang');
print "(page, lang) == ('$page', '$lang')\n";

некогда не понимал зачем так писать…можно же короче:

use CGI;

my $page = param(’page’);

my $lang = param(’lang’);