logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Module::Install::Admin - Author-side manager for Module::Install

Authors

       Audrey Tang <autrijus@autrijus.org>

Description

       This module implements the internal mechanism for initializing, including and managing extensions, and
       should only be of interest to extension developers; it is never included under a distribution's inc/
       directory, nor are any of the Module::Install::Admin::* extensions.

       For normal usage of Module::Install, please see Module::Install and "COOKBOOK / EXAMPLES" in
       Module::Install instead.

   Bootstrapping
       When someone runs a Makefile.PL that has "use inc::Module::Install", and there is no inc/ in the current
       directory, Module::Install will load this module bootstrap itself, through the steps below:

       •   First,  Module/Install.pm  is  POD-stripped and copied from @INC to inc/.  This should only happen on
           the author's side, never on the end-user side.

       •   Reload inc/Module/Install.pm if the current file is somewhere else.  This ensures that  the  included
           version of inc/Module/Install.pm is always preferred over the installed version.

       •   Look at inc/Module/Install/*.pm and load all of them.

       •   Set    up    a    "main::AUTOLOAD"    function    to    delegate    missing    function    calls   to
           "Module::Install::Admin::load" -- again, this should only happen at the author's side.

       •   Provide a "Module::Install::purge_self" function for removing included files under inc/.

Methods

Name

       Module::Install::Admin - Author-side manager for Module::Install

See Also

       Module::Install

Synopsis

       In a Module::Install extension module:

           sub extension_method {
               my $self = shift;
               $self->admin->some_method(@args);
           }

       As an one-liner:

           % perl "-MModule::Install::Admin" -e'&some_method(@args);'

       The two snippets above are really shorthands for

           $some_obj->some_method(@args)

       where $some_obj is the singleton object of a class under the "Module::Install::Admin::*" namespace that
       provides the method "some_method".  See "METHODS" for a list of built-in methods.

See Also