Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
PPI::Transform(3)     User Contributed Perl Documentation    PPI::Transform(3)

       PPI::Transform -	Abstract base class for	document transformation

       "PPI::Transform"	provides an API	for the	creation of classes and
       objects that modify or transform	PPI documents.

	 my $transform = PPI::Transform->new(
	     param1 => 'value1',
	     param2 => 'value2',

       The "new" constructor creates a new object for your "PPI::Transform"
       subclass. A default constructor is provided for you which takes no
       params and creates a basic, empty, object.

       If you wish to have your	transform constructor take params, these must
       be in the form of a list	of key/value pairs.

       Returns a new "PPI::Transform"-compatible object, or returns "undef" on

       The "document" method should be implemented by each subclass, and takes
       a single	argument of a PPI::Document object, modifying it in place as
       appropriate for the particular transform	class.

       That's right, this method will not clone	and should not clone the
       document	object.	If you do not want the original	to be modified,	you
       need to clone it	yourself before	passing	it in.

       Returns the numbers of changes made to the document. If the transform
       is unable to track the quantity (including the situation	where it
       cannot tell IF it made a	change)	it should return 1. Returns zero if no
       changes were made to the	document, or "undef" if	an error occurs.

       By default this error is	likely to only mean that you passed in
       something that wasn't a PPI::Document, but may include additional
       errors depending	on the subclass.

       The "apply" method is used to apply the transform to something. The
       argument	must be	a PPI::Document, or something which can	be turned into
       one and then be written back to again.

       Currently, this list is limited to a "SCALAR" reference,	although a
       handler registration process is available for you to add	support	for
       additional types	of object should you wish (see the source for this

       Returns true if the transform was applied, false	if there is an error
       in the transform	process, or may	die if there is	a critical error in
       the apply handler.

	 # Read	from one file and write	to another
	 $transform->file( '' => '' );

	 # Change a file in place
	 $transform->file( '' );

       The "file" method modifies a Perl document by filename. If passed a
       single parameter, it modifies the file in-place.	If provided a second
       parameter, it will attempt to save the modified file to the alternative

       Returns true on success,	or "undef" on error.

       See the support section in the main module.

       Adam Kennedy <>

       Copyright 2001 -	2011 Adam Kennedy.

       This program is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

       The full	text of	the license can	be found in the	LICENSE	file included
       with this module.

perl v5.32.1			  2019-07-09		     PPI::Transform(3)


Want to link to this manual page? Use this URL:

home | help