Sounds like a job for
POE. Using the non-blocking LWP client, you end up with exactly what you're looking for. DNS requests and web page fetches will do their thing as if in parallel, with callback events as the page comes in, or as things finish. In fact, that even sounds like
one of my columns.