This tutorial will show you how to use a range of standard Perl features and several CPAN modules (in particular, Parse::RecDescent) to decipher and process a variety of complex data and command formats. It examines some of the more advanced features of the Parse::RecDescent module and explores the powerful parsing techniques those features support.
You will learn:
- how to design and build self-modifying parsers to process Apache configuration files and log data;
- how to pull pesky unmatched paragraph tags from HTML;
- how to deal with ambiguous data by parsing it in in parallel, rarther than sequentially;
- how to get Parse::RecDescent to write most of your grammar for you;
- how to parse modular text (e.g. with source with #include-like directives in it);
- how to pre-filter your source code by tricking Perl into (nearly) parsing Perl;
- how to debug Parse::RecDescent parsers efficiently and how to improve the efficiency of your Parse::RecDescent
Perl programmers who are already familiar with the basics of grammar-based parsing. The techniques presented are not restricted to the specific applications mentioned, and will be useful to anyone who needs to process complex structured input of any kind.