http://www.perlmonks.org?node_id=411608


in reply to parsing a bibliography

This is a great case for Parse::RecDescent. It can take a record oriented matching strategy (so A is possible only if B follows and that then excludes C kind of thing). The trick is that writing grammars for it is not super easy or quick or else I'd take a stab--who knows, maybe some good and kind monk who's a pro with it is doing so right now.