URI::Template 0.01 has made it's way to CPAN.
What's a URI template you ask? It's a spec extracted from the OpenSearch standard to facilitate the programmatic creation of URIs. The first draft of the spec is now online. It's a slightly more simplified version than what you get with OpenSearch. For instance, the OpenSearch spec has a provision for namespaced template variables.
Here's what a simple template might look like when used with URI::Template
use URI::Template; my $template = URI::Template->new( 'http://www.example.com/search/?q={query}' ); my $uri = $template->process( query => 'foo' ); # $uri is now a URI object with value: # http://www.example.com/search/?q=foo