每个链接都与当前请求的uri具有相同的网址,但page
参数可能不同。
如何在Perl中生成此类链接?
答案 0 :(得分:3)
您似乎不了解基础知识。去阅读一两本关于Web编程的入门书。
构造一个URI对象。
use URI qw();
在CGI中,将它拼凑在一起from the enviroment。 (堆叠器,有没有更好的方法/便利方法我忽略了?)
my $current = 'http://example.com/?search=foobar';
my $u = URI->new($current);
在PSGI中,使用uri
方法。
use Plack::Request qw();
…
my $req = Plack::Request->new($env);
my $u = $req->uri;
高级框架应该提供自己的访问者。在Catalyst中:
my $u = $c->request->uri;
改变查询字符串以包含paging参数。
use URI::QueryParam qw();
$u->query_param(page => 13);
$u->as_string; # returns http://example.com/?search=foobar&page=13
query_param
DTRT并覆盖参数,即使该参数已经设置。
$u->query_param(page => 42);
$u->as_string; # returns http://example.com/?search=foobar&page=42