# from Mark Stosberg on Wednesday 27 February 2013: >There's so many modules that extend LWP or Mechanize through >sub-classing, but can't easily be combined with getting into diamond >inheritance: > >Here's a sampling of LWP subclasses: > LWP::UserAgent::POE >... > LWP::Parallel::UserAgent;
And you forgot LWP::Iterator::UserAgent, HTTP::Async, AnyEvent::HTTP::LWP::UserAgent, LWP::Protocol::Coro::http, and Net::Async::HTTP. Not all of these are subclasses or extensions, some are probably re- implementations due to the difficulty of bolting a non-blocking workflow onto a blocking object. Given some finer-grained composition, maybe various add-on features could be easily used from any of these various engines / event loops. --Eric -- --------------------------------------------------- http://scratchcomputing.com ---------------------------------------------------