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

Changes for version 0.841

  • General:
  • Completed much more documentation on the core classes
  • PPI::Tester back in sync again (seperate distribution)
  • PPI::Processor and PPI::Tinderbox completed (seperate distribution)
  • Details:
  • Documented PPI::Tokenizer
  • PPI::Document->new( $source ) added as a convenience
  • PPI::Lexer::lex_file can now be called statically
  • PPI::Lexer::lex_source can now be called statically
  • PPI::Lexer::lex_tokenizer can now be called statically
  • Fixed a small bug in PPI::Dumper::print
  • Fixed CPAN #9582 Tokenizer Bug: C< sub y { } # Comment >
  • Fixed similar case with C< foo->y() >

Changes for version 0.840_01

  • General:
  • Perl Foundation Funding Commences
  • Changes separated into General and Details from here one
  • Complete re-organisation of the quote-like token classes. Any and all code that works with quotes will be broken.
  • Gave up on the old PPI::Query code and wrote a complete new and much thinner implementation based roughly on the API of File::Find::Rule. PPI::Find uses the &wanted function (which also has a slightly different API to the old one) but has the ->in style search methods. It should be relatively easy for someone to write PPI::Find::Rule on top of it.
  • PPI::Transform is thus temporarily stale
  • Details:
  • Introduced a bug for C< foreach $foo () > and caught/fixed it during the changeover.
  • Changed PPI::Lexer::Dump to PPI::Dumper
  • API Freeze PPI::Find
  • API Freeze PPI::Dumper
  • Documented PPI::Find
  • Documented PPI::Dumper

Documentation

PPI

Modules

PPI
Analyze and manipulate Perl code without using perl itself
A single Perl document
A fragment of a Perl Document
Create normalised PPI Documents
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
The base class for perl statements
Describes all compound statements
A package statement
A scheduled code block
Subroutine declaration
Variable declaration statements
Process all of CPAN to find parsing bugs
The main Task class for the PPI CPAN Tinderbox
Token class for the here-doc
The Perl Document Tokenizer

Provides

in lib/PPI/Base.pm
in lib/PPI/Format/HTML.pm
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/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/Transform.pm
in lib/PPI/Transform/Object.pm