# NAME

Import::Base - Import a set of modules into the calling module

# VERSION

version 0.002

# SYNOPSIS

    package My::Base;
    use base 'Import::Base';
    sub modules {
        my ( $class, %args ) = @_;
        return (
            strict => [],
            warnings => [],
        );
    }
    1;

    package My::Module;
    use My::Base;

# DESCRIPTION

This module makes it easier to build and manage a base set of imports. Rather
than importing a dozen modules in each of your project's modules, you simply
import one module and get all the other modules you want. This reduces your
module boilerplate from 12 lines to 1.

# METHODS

## modules( %args )

Prepare the list of modules to import. %args comes from the caller's `use` line.
Returns a list of MODULE => \[ import() args \]. MODULE may appear multiple times.

# SEE ALSO

- [ToolSet](http://search.cpan.org/perldoc?ToolSet)

    This is very similar, but does not appear to allow subclasses to remove imports from
    the list of things to be imported. By having the module list be a static array, we
    can modify it further in more levels of subclasses.

- [Toolkit](http://search.cpan.org/perldoc?Toolkit)

    This one requires configuration files in a home directory, so is not shippable.

- [rig](http://search.cpan.org/perldoc?rig)

    This one also requires configuration files in a home directory, so is not shippable.

# AUTHOR

Doug Bell <preaction@cpan.org>

# COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by Doug Bell.

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