The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 0.904

  • General:
  • Improvements to PPI::Normal
  • Method renaming to parse-time PDOM private methods
  • Various bug fixes and POD tweaks
  • Added PPI::Util
  • Details:
  • Partly added Layer 2 to PPI::Normal
  • Added function PPI::Normal::Standard::remove_useless_pragma
  • Added function PPI::Normal::Standard::remove_statement_seperator
  • Added function PPI::Normal::Standard::remove_useless_return
  • Renamed _on_line_start to __TOKENIZER__on_line_start
  • Renamed _on_line_end to __TOKENIZER__on_line_end
  • Renamed _on_char to __TOKENIZER__on_char
  • Renamed _scan_for_end to __TOKENIZER__scan_for_end
  • Renamed _commit to __TOKENIZER__commit
  • Renamed _is_an_attribute to __TOKENIZER__is_an_attribute
  • Renamed _literal to __TOKENIZER__literal
  • Renamed _opposite to __LEXER__opposite
  • Fixed bug in PPI::Statement::Package::namespace
  • Added unit tests for PPI::Statement::Package
  • Added (currently mostly internal) PPI::Util
  • Added exportable function PPI::Util::_Document

Modules

PPI
BETA: Analyze and manipulate Perl code without using perl itself
Object representation of a Perl document
A fragment of a Perl Document
A normalized Perl Document
Dumping of PDOM trees
The abstract Element class, a base for all source objects
Object version of the Element->find method
The PPI Lexer
Abstract PPI Node class, an Element that can contain other Elements
Normalize Perl Documents
Provides standard document normalization functions
The base class for Perl statements
Describes all compound statements
A package statement
A scheduled code block
Subroutine declaration
Variable declaration statements
Token class for the here-doc
The Perl Document Tokenizer

Provides

in lib/PPI/Statement/Break.pm
in lib/PPI/Statement/Data.pm
in lib/PPI/Statement/End.pm
in lib/PPI/Statement/Expression.pm
in lib/PPI/Statement/Include.pm
in lib/PPI/Statement/Null.pm
in lib/PPI/Statement/Unknown.pm
in lib/PPI/Statement/UnmatchedBrace.pm
in lib/PPI/Structure.pm
in lib/PPI/Structure/Block.pm
in lib/PPI/Structure/Condition.pm
in lib/PPI/Structure/Constructor.pm
in lib/PPI/Structure/ForLoop.pm
in lib/PPI/Structure/List.pm
in lib/PPI/Structure/Subscript.pm
in lib/PPI/Structure/Unknown.pm
in lib/PPI/Token.pm
in lib/PPI/Token/ArrayIndex.pm
in lib/PPI/Token/Attribute.pm
in lib/PPI/Token/Cast.pm
in lib/PPI/Token/Comment.pm
in lib/PPI/Token/DashedWord.pm
in lib/PPI/Token/Data.pm
in lib/PPI/Token/End.pm
in lib/PPI/Token/Label.pm
in lib/PPI/Token/Magic.pm
in lib/PPI/Token/Number.pm
in lib/PPI/Token/Operator.pm
in lib/PPI/Token/Pod.pm
in lib/PPI/Token/Prototype.pm
in lib/PPI/Token/Quote.pm
in lib/PPI/Token/Quote/Double.pm
in lib/PPI/Token/Quote/Interpolate.pm
in lib/PPI/Token/Quote/Literal.pm
in lib/PPI/Token/Quote/Single.pm
in lib/PPI/Token/QuoteLike.pm
in lib/PPI/Token/QuoteLike/Backtick.pm
in lib/PPI/Token/QuoteLike/Command.pm
in lib/PPI/Token/QuoteLike/Readline.pm
in lib/PPI/Token/QuoteLike/Regexp.pm
in lib/PPI/Token/QuoteLike/Words.pm
in lib/PPI/Token/Regexp.pm
in lib/PPI/Token/Regexp/Match.pm
in lib/PPI/Token/Regexp/Substitute.pm
in lib/PPI/Token/Regexp/Transliterate.pm
in lib/PPI/Token/Separator.pm
in lib/PPI/Token/Structure.pm
in lib/PPI/Token/Symbol.pm
in lib/PPI/Token/Unknown.pm
in lib/PPI/Token/Whitespace.pm
in lib/PPI/Token/Word.pm
in lib/PPI/Token/_QuoteEngine.pm
in lib/PPI/Token/_QuoteEngine/Full.pm
in lib/PPI/Token/_QuoteEngine/Simple.pm
in lib/PPI/Util.pm