Rose::URI is a standalone URI class allowing easy and efficient manipulation of query parameters and other URI components.
$uri = Rose::URI->new('http://un:email@example.com/bar/baz?a=1&b=two+3');
$scheme = $uri->scheme;
$user = $uri->username;
$pass = $uri->password;
$host = $uri->host;
$path = $uri->path;
$b = $uri->query_param('b'); # $b = "two 3"
$a = $uri->query_param('a'); # $a = 1
$uri->query_param('c' => 'blah blah');
Rose::URI is an alternative to URI. The important differences are as follows.
Rose::URI provides a rich set of query string manipulation methods. Query parameters can be added, removed, and checked for their existence. URI allows the entire query to be set or returned as a whole via the query_form or query methods, and the URI::QueryParam module provides a few more methods for query string manipulation.
Rose::URI supports query parameters with multiple values (e.g. "a=1&a=2"). URI has limited support for this (through query_form's list return value. Better methods are available in URI::QueryParam.
Rose::URI uses Apache's C-based URI parsing and HTML escaping functions when running in a mod_perl 1.x web server environment.
Rose::URI stores each URI "in pieces" (scheme, host, path, etc.) and then assembles those pieces when the entire URI is needed as a string. This technique is based on the assumption that the URI will be manipulated many more times than it is stringified. If this is not the case in your usage scenario, then URI may be a better alternative.
Now some similarities: both classes use the overload module to allow "magic" stringification. Both URI and Rose::URI objects can be printed and compared as if they were strings.
Rose::URI actually uses the URI class to do the heavy lifting of parsing URIs when not running in a mod_perl 1.x environment.
Finally, a caveat: Rose::URI supports only "http"-like URIs. This includes ftp, http, https, and other similar looking URIs. URI supports many more esoteric URI types (gopher, mailto, etc.) If you need to support these formats, use URI instead.