# 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
---------------------------------------------------