I've used
Parse::RecDescent a few times, most recently in creating
HTML::Template::Expr. It's a fun module and one I recommend all Perl programmers learn, if only for the experience. It's a fine example of the extent to which mini-languages embeded in Perl can make hard problems easier to solve.
However, it is worth noting that the module is horribly slow, even running a carefully tuned grammar. Damian had plans to address this but it seems they never came to fruition. I've been forced to avoid its use in a number of projects because the speed penalty was just too high.
-sam