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 (
'http://www.perlmonks.org/index.pl?node_id=629153',
'http://www.perlmonks.org/index.pl?node=Recently%20Active%20Threads
+',
) {
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");
}
}
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|