in reply to POE's queue and Wheel::ReadWrite->put()

You need to use something that uses non-blocking IO using the POE internals. While LWP::UserAgent uses non-blocking IO, it uses select() internally rather than letting the POE kernel do the work. Try using POE::Component::HTTP::Client instead, which does exactly what you want.
  • Comment on Re: POE's queue and Wheel::ReadWrite->put()