Here is the relevant chunk from perldiag, in case you didn't think/know to look there:
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';".
I didn't take the time/effort to read it and fully understand it, but I hope it helps nonetheless.
In reply to Re: AUTOLOAD inheritance
by edan
in thread AUTOLOAD inheritance
by gri6507
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |