Changes for version 0.819
- Many parts of PPI are VASTLY changed in this revision
- Breaks API compatibility heavily
- Adds dependency on List::MoreUtils
- Added PPI::Lexer support for CHECK blocks
- Added PPI::Document::load method
- Added PPI::Document::save method
- Added PPI::Document::index_locations method
- Added PPI::Document::flush_locations method
- Added PPI::Element::top method
- Added PPI::Element::document method
- Renamed PPI::Element::extract -> PPI::Element::remove
- Added test script for element-y stuff
- Optimisation across the board using List::Any
- Added PPI::Node::first_child method
- Added PPI::Node::last_child method
- Added PPI::Element::clone method
- Removed Filehandle support from PPI::Tokenizer, to allow the ability to rollback source lines into the buffer if needed.
- Added POD documentation for PPI::Element
- Added POD documentation for PPI::Node
- Added POD documentation for PPI::Document
Documentation
Modules
Parse and manipulate Perl code non-destructively, without using perl itself
A single cohesive Perl document
The abstract Element class, a base for all source objects
The PPI Lexer
Abstract PPI Node class, an Element that can contain other Elements
Provides
in sample/syntax/AppLib/CGI.pm
in sample/syntax/AppLib/Error.pm
in sample/syntax/AppLib/Page.pm
in sample/syntax/AppLib/PageFactory.pm
in sample/syntax/AppLib/Parser.pm
in lib/PPI/Base.pm
in lib/PPI/Format/HTML.pm
in lib/PPI/Lexer/Dump.pm
in lib/PPI/Statement.pm
in lib/PPI/Statement.pm
in lib/PPI/Statement.pm
in lib/PPI/Statement.pm
in lib/PPI/Statement.pm
in lib/PPI/Statement.pm
in lib/PPI/Statement.pm
in lib/PPI/Statement.pm
in lib/PPI/Statement.pm
in lib/PPI/Statement.pm
in lib/PPI/Statement.pm
in lib/PPI/Structure.pm
in lib/PPI/Structure.pm
in lib/PPI/Structure.pm
in lib/PPI/Structure.pm
in lib/PPI/Structure.pm
in lib/PPI/Structure.pm
in lib/PPI/Structure.pm
in lib/PPI/Structure.pm
in lib/PPI/Token.pm
in lib/PPI/Token/Classes.pm
in lib/PPI/Token/Classes.pm
in lib/PPI/Token/Classes.pm
in lib/PPI/Token/Classes.pm
in lib/PPI/Token/Classes.pm
in lib/PPI/Token/Classes.pm
in lib/PPI/Token/Classes.pm
in lib/PPI/Token/Classes.pm
in lib/PPI/Token/Classes.pm
in lib/PPI/Token/Classes.pm
in lib/PPI/Token/Classes.pm
in lib/PPI/Token/Classes.pm
in lib/PPI/Token/Classes.pm
in lib/PPI/Token/Quote.pm
in lib/PPI/Token/Classes.pm
in lib/PPI/Token/Classes.pm
in lib/PPI/Token/Quote/Full.pm
in lib/PPI/Token/Classes.pm
in lib/PPI/Token/Classes.pm
in lib/PPI/Token/Classes.pm
in lib/PPI/Token/Classes.pm
in lib/PPI/Token/Quote/Simple.pm
in lib/PPI/Token/Classes.pm
in lib/PPI/Token/Classes.pm
in lib/PPI/Token/Classes.pm
in lib/PPI/Token/Classes.pm
in lib/PPI/Token/Classes.pm
in lib/PPI/Token/Classes.pm
in lib/PPI/Token/Classes.pm
in lib/PPI/Token/Classes.pm
in lib/PPI/Token/Classes.pm
in lib/PPI/Token/Classes.pm
in lib/PPI/Token/Classes.pm
in lib/PPI/Token/Classes.pm
in lib/PPI/Token/Unknown.pm
in lib/PPI/Token/Classes.pm
in lib/PPI/Token/_Pod.pm
in lib/PPI/Tokenizer.pm
in lib/PPI/Tokenizer/Quote/Full.pm
in lib/PPI/Tokenizer/Quote/Simple.pm