According to the Parse::RecDescent::FAQ, it's possible to precompile parsers. That might well take care of performance problems, and sounds like a very good idea for a CGI script.
That FAQ has more info on optimizations. Apparently most of the complaints relate to big files (both grammar and input). The latter doesn't seem to be a problem in your case.