打开查询字符串成散列Perl的
我想找出如何做到这相反:打开查询字符串成散列Perl的
Perl - How can I turn a hash into a query string?
我有一个字符串化的查询字符串的形式,并希望将其转换为一个哈希值。
随着更多的上下文,客户端传递一些URL参数作为字符串化的查询形式,这是base64编码,我想解码,变成一个哈希,添加一些更多的自定义URL参数的哈希,然后我有一个方法已经转换回字符串并附加到URL。
my $uriQuery = URI::Query->new($redirectQueryParams);
$qs = $uriQuery->hash;
似乎炸毁带
无法找到对象方法的 “新” 通过包 “URI ::查询”
的URI模块结合滴在插件URI::QueryParams可以做你想做的。
use strict;
use warnings;
use URI;
use URI::QueryParam;
my $uri = URI->new('https://example.org/?foo=bar&baz=qrr');
$uri->query_param_append(frobnication => 'yes, please');
print $uri;
这将打印
https://example.org/?foo=bar&baz=qrr&frobnication=yes%2C+please
如果你其实想一个哈希,你可以调用the query_form_hash
method。
$uri->query_form_hash
但是,考虑到您所能想到的所有更改都已经实施,这没有多大意义。
我很欣赏答案,但这与我所需要的相反。我只想将查询字符串转换为散列,向散列中添加更多项目然后使用 - https://stackoverflow.com/questions/30281332/perl-how-can-i-turn-a-hash-into -a-query-string将其转换回查询。 所以输入应该是: 富=栏&巴兹= QRR 和输出: $数据= { '富'=> '酒吧', '巴兹'=> 'QRR', }; 我可以再添加: $ data - > {more} ='yes'; 转换回查询使用: $ url-> query_form(%$ data); – snakespan
@snakespan我明白这一点。但我说你不需要。这个模块已经为你做了所有的工作。如果您真的需要,请参阅我的编辑,了解如何自己完成工作。 – simbabque
你有什么到目前为止已经试过? –
你试过了什么?你有什么问题?告诉我们你的代码。如果您没有任何代码,那么堆栈溢出可能不是您问题的最佳位置。 –
这可以通过快速搜索CPAN轻松解决。并且请至少包含您的查询字符串,以便我们知道您在说什么。 – simbabque