use URI::URL; my $u=URI::URL->new('/myscript.cgi'); $u->query_form(query=>q(what's up doc?), page => 2); print $u->as_string,"\n"; #### /myscript.cgi?query=what's+up+doc%3F&page=2