ProgressMonitor This is a release of ProgressMonitor, a generic, flexible and extendable OO framework for using the notion of giving feedback (to a user, commonly) that a long-running task is actually doing something (and preferably tell how much of the task remains). A piece of code that does a task declares that it takes a progress monitor instance. When/if given one, it will report progress in a defined and generic manner. If its task requires using other sub-tasks, the task can farm out a piece of its work to the sub-task, using a new progress monitor, and still have overall correct reporting. The type of progress monitor given to the top task has the option to provide the (user) feedback in any manner it so chooses (indeed, if any - a 'null' monitor is perfectly legal). Primarily, the interface is concerned with 'ticks' or 'heartbeats' from the working code. If the amount of work was known beforehand, then these ticks will help compute remaining work and present this in a number of ways. A secondary part of the interface also allows work code to provide messages (typically short ones, they will be cut if they won't fit in the provided space) on what it is doing. The monitor can decide to show or not show this, and if it shows it, it can do so in a couple of ways - perhaps as new lines, or overlaying the ordinary field(s). Included in the package is two main variants of monitors, both of which deals with reporting using strings. Special monitors for 'null' use and for subtasks is also provided. One of the string based monitors simply prints the string on a stream, the other uses a callback to allow the client to do whatever it wish with the string. The strings produced can be of a variety of types ('fields'), and even complex combinations. If none of the provided monitors/fields suits you, inherit from the provided interfaces/implementations and roll your own! INSTALLATION ProgressMonitor definitively requires the pragma 'classes' to be installed (minimum version 0.943). I believe the rest is standard...but as I have little else to test on, as well as the fact that some could be version specific, I could be wrong - please drop me a line so I can update this text or do something otherwise intelligent about it). To install this module, run the following commands: perl Makefile.PL make make test make install SUPPORT AND DOCUMENTATION After installing, you can find documentation for this module with the perldoc command. perldoc ProgressMonitor You can also look for information at: Search CPAN http://search.cpan.org/dist/ProgressMonitor CPAN Request Tracker: http://rt.cpan.org/NoAuth/Bugs.html?Dist=ProgressMonitor AnnoCPAN, annotated CPAN documentation: http://annocpan.org/dist/ProgressMonitor CPAN Ratings: http://cpanratings.perl.org/d/ProgressMonitor COPYRIGHT AND LICENCE Copyright (C) 2006,2007,2008 Kenneth Olwing This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.