Method::Autoload(3pm)

Method::Autoload3pm

Autoloads methods from a list of packages into the current package

Usage

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

Overview

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);

Support

Releases

7 releases since Debian 7 (Wheezy); the text changed 2 times.

  1. 7–10
  2. 11–12
  3. 13

Bugs

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

Author

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

From libmethod-autoload-perl 0.02-3 in Debian 13 (Trixie). Parsed by carta from the page's man source.