I've just released URI::PathAbstract into the wild, which is a melding of URI and Path::Abstract
You can use it to do things like:
my $uri = URI::PathAbstract->new("http://example.com?a=b")
$uri->down("apple")
# http://example.com/apple?a=b
$uri->query("c=d&e=f")
# http://example.com/apple?c=d&e=f
$uri->path("grape/blueberry/pineapple")
# http://example.com/grape/blueberry/pineapple?c=d&e=f
$uri = $uri->parent
# http://example.com/grape/blueberry?c=d&e=f
Looks useful - thanks!
I'll check it out.