NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.
All the Perl that's Practical to Extract and Report
Stories, comments, journals, and other submissions on use Perl; are Copyright 1998-2006, their respective owners.
Re: Line Noise (Score:1)
It’s not Perl that’s line noise, it’s the regex syntax. Last night I wrote this:
s{/(?!\.\.)[^/]+/+\.\.(?=/|\z)}{}gRe: Line Noise (Score:2)
/foo/../bar/../bazto be just/bazif I understand that right.Reply to This
Parent
Re: Line Noise (Score:1)
Even
/xonly really helps because of your profuse comments, though.You guessed correctly: I needed to normalize HTTP URIs to compare them, and URI [cpan.org]’s
canonicalmethod doesn’t finish the job. To be precise, this runs in a1 while s///loop, which is necessary to handle paths likefoo/bar/baz/quux/../../../bar.Re: Line Noise (Score:2)
-Dom
Re: Line Noise (Score:1)
Hmm, actually, that has a bug. The negative look-ahead must contain a trailing slash, otherwise the pattern will erroneously fail to match something like
foo/..fooledya/../bar.At first I thought I needed a more complex assertion than just include a trailing slash in there, so I started rewriting the regex extensively, and after I realised that it’s not that complex, I noticed that my comments actually have a noticably different focus from yours, so I decided to keep the result for comparison: