P5-http-yarm is a project mainly written in Perl, it's free.
yet another routing module
=pod
HTTP::YARM is a simple request routing module.
=head2 Synopsis
use HTTP::YARM;
my $r = HTTP::YARM->new; $r->route('/')->to(sub { print "Hello World!"; }); my $testroute = $r->route(qr{/test/(d+)})->to(sub { print "Count: " . $[0]; });
$test_route->route(qr{/([a-z]+)})->to(controller => 'MyController', action => 'myaction');
$testroute->route(qr{/([a-z]+)/(d+)})->to(controller => 'MyController', action => sub { my($self, $first, $second) = @; });
$r->parse(url => $ENV{'REQUEST_URI'})->execute;
=cut