A straight regex like that is dangerous because the order of the keys could change. To me it looks like you are trying to map different parameter combinations/values to subs. So how about something like:
map_query($cgi, { _page => 'edit', node => /(\w+)/, code => sub { print "You're trying to edit '$node'" }; },{ _page => 'create' name => /(\w+)/, _code => sub { print "You're trying to create '$name' but gave no + code to fill it"; } },{ _page => 'create', name => /(\w+)/, code => /(.*)/, _code => sub { print "Created as sub $name { $code }"; }; },{ _page => /.*/, _code => sub { print "Don't know how to handle " . $q->query_path +; } } );
It is just a rough first attack and i think there is another level of abstraction in there, but you get the idea. It would also be friendly to both post/get requests
In reply to Re: Mapping URLs to code - in search of perlish dispatch schemes
by eric256
in thread Mapping URLs to code - in search of perlish dispatch schemes
by Corion
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |