Query: ppix::utilities::node
OS: centos
Section: 3
Format: Original Unix Latex Style Formatted with HTML and a Horizontal Scroll Bar
PPIx::Utilities::Node(3) User Contributed Perl Documentation PPIx::Utilities::Node(3)NAMEPPIx::Utilities::Node - Extensions to PPI::Node.VERSIONThis document describes PPIx::Utilities::Node version 1.1.0.SYNOPSISuse PPIx::Utilities::Node qw< split_ppi_node_by_namespace >; my $dom = PPI::Document->new("..."); while ( my ($namespace, $sub_doms) = each split_ppi_node_by_namespace($dom) ) { foreach my $sub_dom ( @{$sub_doms} ) { ... } }DESCRIPTIONThis is a collection of functions for dealing with PPI::Nodes.INTERFACENothing is exported by default. split_ppi_node_by_namespace($node) Returns the sub-trees for each namespace in the node as a reference to a hash of references to arrays of PPI::Nodes. Say we've got the following code: #!perl my $x = blah(); package Foo; my $y = blah_blah(); { say 'Whee!'; package Bar; something(); } thingy(); package Baz; da_da_da(); package Foo; foreach ( blrfl() ) { ... } Calling this function on a PPI::Document for the above returns a value that looks like this, using multi-line string literals for the actual code parts instead of PPI trees to make this easier to read: { main => [ q< #!perl my $x = blah(); >, ], Foo => [ q< package Foo; my $y = blah_blah(); { say 'Whee!'; } thingy(); >, q< package Foo; foreach ( blrfl() ) { ... } >, ], Bar => [ q< package Bar; something(); >, ], Baz => [ q< package Baz; da_da_da(); >, ], } Note that the return value contains copies of the original nodes, and not the original nodes themselves due to the need to handle namespaces that are not file-scoped. (Notice how the first element for "Foo" above differs from the original code.)BUGS AND LIMITATIONSPlease report any bugs or feature requests to "bug-ppix-utilities@rt.cpan.org", or through the web interface at <http://rt.cpan.org>.AUTHORElliot Shank "<perl@galumph.com>"COPYRIGHTCopyright (c)2009-2010, Elliot Shank "<perl@galumph.com>". This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of this license can be found in the LICENSE file included with this module. perl v5.16.3 2010-12-02 PPIx::Utilities::Node(3)
Similar Topics in the Unix Linux Community |
---|
Weird 'find' results |
Set hard block limit for user using quota |
Best performance UNIX just for HOST Virtualization? |
How to increment version inside a file? |
Docker learning Phase-I |