module to parse, analyze and manipulate Perl code

PPI provides the ability to parse, analyze and manipulate Perl code without
actually executing the code, by implementing a lexer similar to what perl has
itself internally.

The purpose of PPI is not to parse Perl Code, but to parse Perl Documents. By
making this distinction and treating the problem this way, one could analyze
files containing Perl source code in isolation from any other resources and
without executing it, including other libraries. A significant feature of PPI
is the ability to analyze Perl source code without requiring an instance of
perl to run alongside or inside the parser.