SYNOPSIS

  package MyPackage;
  use base qw{Method::Autoload}

DESCRIPTION

The Method::Autoload base class package is used to autoload methods from a list of packages where you may not know what methods are available until run time. A good use of this package is programming support for user contributed packages or user contributed plugins.

USAGE

use MyPackage; my $object=MyPackage->new(%hash); #provides new and initialize methods $object->pushPackages("My::Bar"); #appends to "packages" array $object->unshiftPackages("My::Foo"); #prepends to "packages" array

use MyPackage; my $object=MyPackage->new(packages=>["My::Foo", "My::Bar"]); $object->foo; #from My::Foo $object->bar; #from My::Bar

CONSTRUCTOR

new

my $object=MyPackage->new(%hash); my $object=MyPackage->new(package=>["My::Package1", "My::Package2"]);

initialize

METHODS PUBLIC

packages

Returns the current list of packages in the \*(L"packages\*(R" array.

my @package=$object->packages; #() my $package=$object->packages; #[]

pushPackages

Pushes packages on to the \*(L"packages\*(R" array.

$object->pushPackages("My::Bar"); $object->pushPackages(@packages);

unshiftPackages

Unshifts packages on to the \*(L"packages\*(R" array. Use this if you want to override a \*(L"default\*(R" package. Please use with care.

$object->unshiftPackages("My::Foo"); $object->unshiftPackages(@packages);

autoloaded

Returns a hash of autoloaded methods and the classes that they came from.

my %hash=$object->autoloaded; #() my $hash=$object->autoloaded; #{}

METHODS PRIVATE

We define \s-1DESTROY\s0 in this package so that it does not call \s-1AUTOLOAD\s0 but you may overload this method in your package, if you need it. \s-1AUTOLOAD\s0 is a \*(L"global\*(R" method. Please review the limitations on inheriting this method.

autoload

my $subref=$object->autoload($class, $method);

BUGS

DavisNetworks.com provides support services for all Perl applications including this package.

SUPPORT

AUTHOR

Michael R. Davis CPAN ID: MRDVT STOP, LLC domain=>michaelrdavis,tld=>com,account=>perl http://www.stopllc.com/

COPYRIGHT

This program is free software licensed under the...

The BSD License

The full text of the license can be found in the \s-1LICENSE\s0 file included with this module.

RELATED TO Method::Autoload…

Class::Std \s-1AUTOMETHOD\s0 method,