Hi,
In order to test this module for testers.cpan.org, I got a lot of warnings
like this one:
Use of inherited AUTOLOAD for non-method HTTP::Request::DESTROY() is
deprecated
at base/cookies.t line 91 (#1)
Use diagnostics say:
(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' AUTOLOADs. 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
AUTOLOADs.
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 try to add *AUTOLOAD = \&HTTP::Message::AUTOLOAD; on HTTP::Request, but
same thing. The only thing I find is create a empty DESTROY method in
HTTP::Mesage.
what are consequence ? Don't know .... Memory problem ? Say me what you think
of this. (you must use 5.7.3 or greater to have this warning).
Regards,
--
Alain BARBET