PPIx::EditorTools::ReturnObject - Simple object to return values from PPIx::EditorTools
my $brace = PPIx::EditorTools::FindUnmatchedBrace->new->find( code => "package TestPackage;\nsub x { 1;\n" ); my $location = $brace->element->location; my $ppi = $brace->element->ppi;
Retuning a simple PPI::Element from many of the PPIx::EditorTools methods often results in the loss of the overall context for that element. PPIx::EditorTools::ReturnObject provides an object that can be passed around which retains the overall context.
PPI::Element
PPIx::EditorTools
PPIx::EditorTools::ReturnObject
For example, in PPIx::EditorTools::FindUnmatchedBrace if the unmatched brace were returned by its PPI::Structure::Block the containing PPI::Document is likely to go out of scope, thus the location method no longer returns a valid location (rather it returns undef). Using the ReturnObject preserves the PPI::Document and the containing context.
PPIx::EditorTools::FindUnmatchedBrace
PPI::Structure::Block
PPI::Document
location
ReturnObject
Constructor which should be used by PPIx::EditorTools. Accepts the following named parameters:
A PPI::Document representing the (possibly modified) code.
A string representing the (possibly modified) code.
A PPI::Element or a subclass thereof representing the interesting element.
Accessor to retrieve the PPI::Document. May create the PPI::Document from the $code string (lazily) if needed.
Accessor to retrieve the string representation of the code. May be retrieved from the PPI::Document via the serialize method (lazily) if needed.
PPIx::EditorTools, App::EditorTools, Padre, and PPI.
Mark Grimes mgrimes@cpan.org
mgrimes@cpan.org
Copyright 2008-2009 The Padre development team as listed in Padre.pm.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself.
To install PPIx::EditorTools, copy and paste the appropriate command in to your terminal.
cpanm
cpanm PPIx::EditorTools
CPAN shell
perl -MCPAN -e shell install PPIx::EditorTools
For more information on module installation, please visit the detailed CPAN module installation guide.