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

Changes for version 0.903

  • General:
  • PPI::Document and other PPI::Node-subclasses will now implicitly DESTROY correctly.
  • Now that PPI.pm is just a module loader, merge the main documentation from PPI::Manual back into it again.
  • Details:
  • Added use of Scalar::Util::weaken for all %_PARENT writes
  • Uncovered critical bug in Clone, so we use Storable::dclone for now, until Clone is fixed. This resolves rt.cpan.org #11552
  • Added dependency on Storable 1.13
  • Moved all PPI::Manual content to PPI and relinked This resolves rt.cpan.org #11803
  • Removed lib/PPI/Manual.pod
  • Added the standard 99_pod.t to check POD
  • Fixed a POD bug in Element.pm

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