Provided by: libdevel-patchperl-perl_2.08-1_all bug

NAME

       Devel::PatchPerl::Plugin - Devel::PatchPerl plugins explained

VERSION

       version 2.08

DESCRIPTION

       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.

INITIALISATION

       The plugin constructor is "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").

         $ 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".

       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 );
         };

WHAT CAN PLUGINS DO?

       Anything you desire to a Perl source tree.

WHY USE AN ENVIRONMENT VARIABLE TO SPECIFY PLUGINS?

       So that indicating a plugin to use can be specified independently of whatever mechanism is
       calling Devel::PatchPerl to do its bidding.

       Think perlbrew.

AUTHOR

       Chris Williams <chris@bingosnet.co.uk>

COPYRIGHT AND LICENSE

       This software is copyright (c) 2021 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.