This file is indexed.

/usr/share/perl5/Devel/PatchPerl/Plugin.pm is in libdevel-patchperl-perl 1.16-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
package Devel::PatchPerl::Plugin;
$Devel::PatchPerl::Plugin::VERSION = '1.16';
#ABSTRACT: Devel::PatchPerl plugins explained

use strict;
use warnings;

qq[Plug it in];

__END__

=pod

=encoding UTF-8

=head1 NAME

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

=head1 VERSION

version 1.16

=head1 DESCRIPTION

This document explains the L<Devel::PatchPerl> plugin system.

Plugins are a mechanism for providing additional functionality to
L<Devel::PatchPerl>.

Plugins are searched for in the L<Devel::PatchPerl::Plugin> namespace.

=head1 INITIALISATION

The plugin constructor is C<patchperl>.

A plugin is specified using the C<PERL5_PATCHPERL_PLUGIN> environment
variable. It may either be specified in full (ie. C<Devel::PatchPerl::Plugin::Feegle>)
or as the short part (ie. C<Feegle>).

  $ export PERL5_PATCHPERL_PLUGIN=Devel::PatchPerl::Plugin::Feegle

  $ export PERL5_PATCHPERL_PLUGIN=Feegle

When L<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
C<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. C<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 );
  };

=head1 WHAT CAN PLUGINS DO?

Anything you desire to a Perl source tree.

=head1 WHY USE AN ENVIRONMENT VARIABLE TO SPECIFY PLUGINS?

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

Think L<perlbrew>.

=head1 AUTHOR

Chris Williams <chris@bingosnet.co.uk>

=head1 COPYRIGHT AND LICENSE

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.

=cut