Update : jryan hit submit two seconds before I did, and with a more verbose post. read that
Parse::RecDescent is an easy to use little parser. It includes examples of describing small grammars. If that isn't enough, do a google search on 'BNF Grammars' and check out the university comp sci pages.