in reply to Parse::RecDescent - some questions

You've probably already tried using
<error: Your message here>
If you did and your <error> is triggering, but you don't like the message it makes, don't be afraid to use an action like
{ die "with your message here at line $thisline"; }
instead of calling error. There are even P::RD variables to help you form the message, like $thisline (line number in input), $text (remaining unparsed text). See the Actions subsection of the pod for a complete list of these vars.

In addition to <commit> mentioned by a previous poster, also look up <reject> and <resynch>.

Phil