Read-only release history for ParallelUserAgent
Perl Shell
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


             Parallel User Agent

(c) 1997-2004 Marc Langheinrich <>

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.

   Unfortunately, I have very little time to maintain this
   module. Though I eventually get around to update it every
   so often, please be aware that the level of support and
   quality for this Perl module is somewhat less than what you
   might expect from official CPAN releases :-(

   Disclaimer 2.0
   Hi, this is Mike South ( I got myself added
   as a co-maintainer to this project so that I could fix a few
   small bugs and let it pass tests using more recent versions of
   libwww.  I have no deep knowledge of the module but I am
   trying to address trivial blockers that are preventing legacy
   users from being able to install on an updated system.  I will
   do my best to handle any issues that come up, and I thank you
   in advance for your patience and suggestions/patches.

1. What is it?
ParallelUserAgent (or PUA for short) is an extension of the existing
libwww-5.x distribution. It allows you to connect to download several
Web pages in _parallel_, without having to request each page one after
the other. 

Instead of retrieving each single page using LWP::UserAgent::request
or ::simple_request methods, you first "register" all pages that you
wish to download in parallel and then call PUA's "wait" method, which
will then make all the necessary connections and download the

You can define callback routines which will be called whenever a
connection is established, is cut off, new data comes in or a request
finishes. The subroutines can be global for all requests you
registered, or different for every single request. 

Callbacks for example allow you to print status updates as the
responses come in, or even immediately post follow-up requests based
on the responses, all within the same single "wait" cycle.

2. How to install it?

PUA comes with an out-of-the-box installation setup. All you have to do 
is the usual

perl Makefile.PL
make test
make install

Previous versions of PUA asked you to replace a few standard modules
that came with libwww5.x. As of version 2.30, PUA will install all of
its modules into the LWP::Parallel subtree, so that your previous
libwww installation remains unchanged!

However, it also requires the latest version of the libwww that it has
been tested against. Earlier (or later) version might work, too, but
you are on your own there. If you are using a different version then
the ones listed below, either upgrade to the latest tested libwww
distribution, or try running the testscript ("make test") and see if
it tests ok anyways :-)

Checked versions so far:

    libwww-5.76 - 6.04*          use ParallelUA-2.61

    libwww-5.66 - 5.69          untested
    libwww-5.64 - 5.65          use ParallelUA-2.55
    libwww-5.60 - 5.63          use ParallelUA-2.54
    libwww-5.52 - 5.53          use ParallelUA-2.51
    libwww-5.48 - 5.51          use ParallelUA-2.50
    libwww-5.44 - 5.47          untested (use 2.43)
    libwww-5.41 - 5.43          use ParallelUA-2.43
    libwww-5.20 - 5.36          use up to ParallelUA-2.39
    libwww-5.19                 untested
    libwww-5.18 and below       not ok!

Note: For optimal results use the _latest_ version of BOTH
      libwww-perl (i.e. 6.04) and ParallelUserAgent (i.e. 2.61).

* note--not every single version in this range has been tested. 5.76,
5.808, 6.04 I am sure of.  There could be versions in between that
need to go back to 2.57.  If you find that to be the case please
file a bug at for this distribution.

3. How to use it?
The current distribution unfortunately has very little documentation
:-( So far I'm happy that I can keep up with Gisle's constant output
of new versions of libwww and haven't had much time to think about
proper documentation.

For starters, you should look into the t/ subdirectory in this
distribution for some examples on how to use this library! Some brief
explanations and examples can also be found in the LWP/
file -- you can use "perldoc LWP::Parallel" after you installed this
module to view the embedded documentation.

Most of the other modules also come with some brief description of
their interfaces which can be viewed using "perldoc <Modulename>".

4. Remarks for users upgrading from ParallelUA 2.20:

You should start out by installing a clean copy of the latest
libwww-5.x package, which should overwrite any existing PUA modules
which used to replace some of the LWP modules. 

The new PUA distribution will still offer the LWP::ParallelUA and
LWP::RobotPUA modules for backward compatibility, but you are
encouraged to start any new projects using the "local" modules now
residing under the LWP::Parallel subtree, namely
LWP::Parallel::UserAgent and LWP::Parallel::RobotUA.

The old "" that used to come with versions 2.20 and below
can be found in t/ and can be used to check backward
compatibility (or can also be used to get a somewhat bigger example on
how to use this module).

5. Questions, comments, etc.

You can join the libwww-perl mailing list by following the
instructions at
(send email to

Bug reports and suggestions for improvements can be submitted via
the cpan RT installation:


  © 1997-2004 Marc Langheinrich. All rights reserved.

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.

Have fun!

$Revision: 1.20 $