in reply to AUTOLOAD inheritance

From perldiag:

Use of inherited AUTOLOAD for non-method %s() is deprecated

(D deprecated) As an (ahem) accidental feature, "AUTOLOAD" subroutines are looked up as methods (using the @ISA hierarchy) even when the subroutines to be autoloaded were called as plain functions (e.g. "Foo::bar()"), not as methods (e.g. "Foo->bar()" or"$obj->bar()").

This bug will be rectified in future by using method lookup only for methods' "AUTOLOAD"s. However, there is a significant base of existing code that may be using the old behavior. So, as an interim step, Perl currently issues an optional warning when non-methods use inherited "AUTOLOAD"s.

The simple rule is: Inheritance will not work when autoloading non-methods. The simple fix for old code is: In any module that used to depend on inheriting "AUTOLOAD" for non-methods from a base class named "BaseClass", execute "*AUTOLOAD = \&BaseClass::AUTOLOAD" during startup.

In code that currently says "use AutoLoader; @ISA = qw(AutoLoader);" you should remove AutoLoader from @ISA and change "use AutoLoader;" to "use AutoLoader 'AUTOLOAD';".