NAME
    subroutines - Use subroutines from another module

VERSION
    This document describes version 0.001 of subroutines (from Perl
    distribution subroutines), released on 2018-12-15.

SYNOPSIS
     package Your::Module;
     use subroutines 'Another::Module';

    To avoid require()-ing:

     use subroutines '-norequire', 'Another::Module';

DESCRIPTION
    This pragma declares routines in your module that are copied from
    another module.

     package Your::Module;
     use subroutines 'Another::Module';

    is equivalent to this pseudo-code:

     package Your::Module;
     BEGIN {
         require Another::Module;
         for my $name (all_subroutines_in("Another::Module")) {
             *{"Your::Module::$name"} = \&{"Another::Module::$name"};
         }
     }

    This is a form of code reuse when you cannot do:

     package Your::Module;
     use parent 'Another::Module';

    because the original subroutines do not expect to be called as methods,
    and/or when your subroutines are not called as methods.

    Another alternative is to declare "Your::Module" as an alias of
    "Another::Module", e.g. using alias::module.

     package Your::Module;
     use alias::module 'Another::Module';

    but this copies everythng, not just subroutines.

HOMEPAGE
    Please visit the project's homepage at
    <https://metacpan.org/release/subroutines>.

SOURCE
    Source repository is at <https://github.com/perlancar/perl-subroutines>.

BUGS
    Please report any bugs or feature requests on the bugtracker website
    <https://rt.cpan.org/Public/Dist/Display.html?Name=subroutines>

    When submitting a bug or request, please include a test-file or a patch
    to an existing test-file that illustrates the bug or desired feature.

SEE ALSO
    alias::module

    parent, base

AUTHOR
    perlancar <perlancar@cpan.org>

COPYRIGHT AND LICENSE
    This software is copyright (c) 2018 by perlancar@cpan.org.

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

