That could be true as well,
merlyn. Recursive descent (the methodology) is the right way to do this sort of thing, but what
TheDamian's module does isn't exactly classic RD. It
is hard to do this in P::RD where it might be better done in a YACC-style parser because of the left recursion issue.
I was as frustrated with using the module itself as I was with the slowness of the program. Part of the reason I rewrote it was so that I could build my own trace functions and examine my own variables and stacks. I felt that understanding
TheDamian's code would have taken me as long as the approach I took, and might not have given me the same results.
That's the main reason I focused on the use of modules, and it's a broader concern than just with P::RD. As you say, any module and / or approach has its plusses and minuses and these must be evaluated for each problem one approaches.