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 . SOURCE Source repository is at . BUGS Please report any bugs or feature requests on the bugtracker website 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 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.