将查询字符串转换为Hash Perl

时间:2017-10-18 14:10:51

标签: perl hash uri

我想知道如何做到与此相反:

Perl - How can I turn a hash into a query string?

我有一个字符串化的查询字符串表单,并希望将其转换为哈希值。

有了更多的上下文,客户端传递一些URL参数作为base64编码的字符串化查询表单,我想解码,变成哈希,在哈希中添加一些自定义URL参数,然后我有一个方法已经转换回字符串并附加到URL。

my $uriQuery = URI::Query->new($redirectQueryParams);
$qs = $uriQuery->hash;

似乎爆炸了

  

找不到对象方法" new"通过包" URI ::查询"

1 个答案:

答案 0 :(得分:2)

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

然而,考虑到你能想到的所有改变都已经实现,这没有多大意义。