Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"

Re^3: Parse::RecDescent for parsing URLs

by ikegami (Pope)
on Jul 27, 2007 at 17:53 UTC ( #629163=note: print w/ replies, xml ) Need Help??

in reply to Re^2: Parse::RecDescent for parsing URLs
in thread Parse::RecDescent for parsing URLs

Parse::RecDescent is used to create parsers, yet there already exists a parser for URIs. URI and extention URI::QueryParam should do the trick.

Update: Here's an example:

use URI qw( ); use URI::QueryParam qw( ); foreach ( '', ' +', ) { my $uri = URI->new($_); my @node_ids = $uri->query_param('node_id'); my @node_titles = $uri->query_param('node'); if ( (@node_ids && @node_titles) || @node_ids > 2 || @node_titles > 2 ) { warn("$uri: Error: Bad uri\n"); } if (!@node_ids && !@node_titles) { warn("$uri: Warning: Unrecognized uri\n"); next; } if (@node_ids) { print("$uri: By Id ($node_ids[0])\n"); } if (@node_titles) { print("$uri: By Title ($node_titles[0])\n"); } }

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://629163]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (11)
As of 2016-07-27 12:36 GMT
Find Nodes?
    Voting Booth?
    What is your favorite alternate name for a (specific) keyboard key?

    Results (242 votes). Check out past polls.