Devel::PatchPerl::Plugin - Devel::PatchPerl plugins explained
version 1.30
This document explains the Devel::PatchPerl plugin system.
Plugins are a mechanism for providing additional functionality to Devel::PatchPerl.
Plugins are searched for in the Devel::PatchPerl::Plugin namespace.
The plugin constructor is patchperl.
patchperl
A plugin is specified using the PERL5_PATCHPERL_PLUGIN environment variable. It may either be specified in full (ie. Devel::PatchPerl::Plugin::Feegle) or as the short part (ie. Feegle).
PERL5_PATCHPERL_PLUGIN
Devel::PatchPerl::Plugin::Feegle
Feegle
$ export PERL5_PATCHPERL_PLUGIN=Devel::PatchPerl::Plugin::Feegle $ export PERL5_PATCHPERL_PLUGIN=Feegle
When Devel::PatchPerl has identified the perl source patch and done its patching it will attempt to load the plugin identified. It will then call the class method patchperl for the plugin package, with the following parameters:
'version', the Perl version of the source tree; 'source', the absolute path to the Perl source tree; 'patchexe', the 'patch' utility that can be used;
Plugins are called with the current working directory being the root of the Perl source tree, ie. source.
source
Summarised:
$ENV{PERL5_PATCHPERL_PLUGIN} = 'Devel::PatchPerl::Plugin::Feegle'; my $plugin = $ENV{PERL5_PATCHPERL_PLUGIN}; eval "require $plugin"; eval { $plugin->patchperl( version => $vers, source => $srcdir, patchexe => $patch ); };
Anything you desire to a Perl source tree.
So that indicating a plugin to use can be specified independently of whatever mechanism is calling Devel::PatchPerl to do its bidding.
Think perlbrew.
Chris Williams <chris@bingosnet.co.uk>
This software is copyright (c) 2014 by Chris Williams and Marcus Holland-Moritz.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install Devel::PatchPerl, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Devel::PatchPerl
CPAN shell
perl -MCPAN -e shell install Devel::PatchPerl
For more information on module installation, please visit the detailed CPAN module installation guide.