in reply to base class manipulation: Is there something similar on CPAN?

You want a module that pushes onto an array?

I would do:

package LWP::UserAgent::Powerfull; use LWP::UserAgent::Proxified; use LWP::UserAgent::Determined; use LWP::UserAgent::Cached; our @ISA = qw[LWP::UserAgent::Proxified LWP::UserAgent::Determined LWP +::UserAgent::Cached];
Or, if for whatever reason, you insist of having the indicated chain:
package LWP::UserAgent::Powerfull; use LWP::UserAgent::Proxified; use LWP::UserAgent::Determined; use LWP::UserAgent::Cached; push @LWP::UserAgent::Determined::ISA, "LWP::UserAgent::Proxified"; push @LWP::UserAgent::Cached::ISA, "LWP::UserAgent::Determined"; our @ISA = "LWP::UserAgent::Cached";
assuming that LWP::UserAgent::Proxified already inherits LWP.

Replies are listed 'Best First'.
Re^2: base class manipulation: Is there something similar on CPAN?
by OlegG (Monk) on Jan 16, 2012 at 12:25 UTC
    Your second example looks more correct, but in fact should be:
    foreach my $parent (@LWP::UserAgent::Determined::ISA) { if ($parent eq 'LWP::UserAgent') { $parent = 'LWP::UserAgent::Proxified'; last; } }
    instead of push.
    Module can automate this routine actions and make some additional checks.