in reply to Parse::RecDescent sub-rule question

It's matching a portion of the string, which is legal unless you also anchor the end of the pattern. I typically use /\z/ at the end of my top-level pattern.

Also, your comma-separated string can be parsed simply with

argument: element(s /,/)
as shown in the P::RD examples on the manpage.

-- Randal L. Schwartz, Perl hacker
Be sure to read my standard disclaimer if this is a reply.