use URI; my $user_url = "http://www.stonehenge.com/cgi/dilbert"; my $params = [ max => 5, scary => "%&foo;%" ]; # ... my $uri = URI->new($user_url); $uri->query_form(@$params); print $uri->as_string; #### http://www.stonehenge.com/cgi/dilbert?max=5&scary=%25%26foo%3B%25