【发布时间】:2018-07-18 14:22:36
【问题描述】:
我有一个 Mojo 应用程序。我有一个来自“a”标签的 URL 列表。我想要么为每个查询参数添加一些查询参数,或者如果它们已经存在于该 URL 中,则修改其中的现有查询参数。 URL 的其余部分必须保持不变。 以下是我的做法:
$doc->find('a')->each(sub {
my $aTag = $_;
my $aUrl = Mojo::URL->new($aTag->attr('href'));
my $newUrl = $aUrl->query->merge('q_key1' => 'something', 'q_key2' => 'something2'); # <--- warn: returns only the query part, removes the "path" part
$_->attr('href' => $newUrl->to_string);
});
问题在于它只返回查询部分并删除,例如,当“路径”部分存在时。
而我希望所有这些都保持原样:路径、域、原型等... -- 我只想添加/修改查询部分,并且只有“q_key1”和“q_key1”参数。
我该怎么做?
【问题讨论】:
标签: perl url mojolicious