use composition LWP::UserAgent => LWP::UserAgent::Proxified => LWP::UserAgent::Determined => LWP::UserAgent::Cached; # now LWP::UserAgent::Cached->new() creates useragent with all supported options #### use composition -new => LWP::UserAgent => LWP::UserAgent::Proxified => LWP::UserAgent::Determined => LWP::UserAgent::Cached => LWP::UserAgent::Powerfull; # LWP::UserAgent::Powerfull was autogenerated # LWP::UserAgent::Powerfull->new() creates useragent with all supported options