我使用perl的REST::Application
在我的服务器上动态生成html,其cgi脚本看起来有点像:
my $url_map = {
qr|^/?$| => {
GET => \&get_help,
},
qr|^/builders/?$| => {
GET => \&get_builders,
},
};
我想添加对查询字符串的支持。例如,如果网址为www.example.com/query?param1=a¶m2=b
,我希望能够将这些值作为参数调用过程。但是,如果只给出其中一个参数,也应该支持它。
答案 0 :(得分:-1)
可能的解决方案可能是使用HTML::Entities
和CGI
:
添加相关模块:
use CGI;
use HTML::Entities;
将prpoer行添加到$url_map
:
qr|^/query(.*)| => {
GET => \&get_query,
}
并实施:
sub get_uploads {
$rest->header(-type => "text/plain, charset=utf8");
my $cgi = CGI->new;
my %params = map { $_ => HTML::Entities::encode(join("; ", split("\0", $cgi->Vars->{$_}))) } $cgi->param;
.
.
.
}
在此阶段%params
将保留查询字符串。
例如,如果我在问题中使用url
,%params
将是:
$VAR1 = {
'param1' => 'a',
'param2' => 'b'
};