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. Disclaimer ---------- 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 :-( 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 pages. 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 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 use ParallelUA-2.57 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 performance you shoud use the _latest_ version of BOTH libwww-perl (i.e. 5.76) and ParallelUserAgent (i.e. 2.57). 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/Parallel.pm 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 ". 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 "TestScript.pl" that used to come with versions 2.20 and below can be found in t/TestScript.pl 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. ---------------------------- Question about how to use the underlying LWP library should be directed to the comp.lang.perl.modules USENET Newsgroup. Bug reports and suggestions for improvements can be sent to the mailing list. This mailing list is also the place for general discussions and development of the libwww-perl package. You can join the mailing list by sending a message to with "Subscribe" as subject. ^^^^^^^^ COPYRIGHT © 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 $