in reply to This runs WAY too slow
Now, sidestepping the question why you're rolling your own parsing, why match anything alphabetic (more than 100,000 characters will match) or a digit (more than 400 matches). And considering that [\p{IsAlphabetic}\d] is equivalent to \p{Alnum}, you could have saved a lot of typing. Of course, it's still wrong. Much better would be the pattern: %(\p{AHex}{2}), as \p{AHex} matches exactly the 22 characters you want to match. Not a single character more, not a single character less. Much better than the 100,520 characters you're matching.$value =~ s/%([\p{IsAlphabetic}\d][\p{IsAlphabetic}\d])/pack("C", hex($1)) +/egxsm;
And what's up with the modifiers? You have 5, of which you're only using 2. You've no characters in your pattern that will change meaning with the /s, /m and /x modifiers.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: This runs WAY too slow
by Dandello (Monk) on Jan 17, 2011 at 14:59 UTC | |
by JavaFan (Canon) on Jan 17, 2011 at 17:20 UTC | |
by Dandello (Monk) on Jan 17, 2011 at 21:27 UTC |