---
name: "Method::Autoload"
section: "3pm"
platform: "linux"
package: "libmethod-autoload-perl"
version: "0.02-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Method::Autoload"
---

# Method::Autoload(3pm)

Autoloads methods from a list of packages into the current package

## NAME

Method::Autoload - Autoloads methods from a list of packages into the current package

## 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 "packages" array.

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

### pushPackages

Pushes packages on to the "packages" array.

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

### unshiftPackages

Unshifts packages on to the "packages" array.  Use this if you want to override a "default" 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

### DESTROY ("Global" method)

We define DESTROY in this package so that it does not call AUTOLOAD but you may overload this method in your package, if you need it.

### AUTOLOAD ("Global" method)

AUTOLOAD is a "global" 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 LICENSE file included with this module.

## SEE ALSO

Class::Std AUTOMETHOD method,
