BrowserUK I must admit very succinct code and definitely provides me with a different method to view this endeavour.
In the original post, I did provide a copious amount of code documentation, and was immediately shot down with flames in trail. I understand that that there are those that care little for code comments. Moreover, I have also read your write-up related to documentation--which I mainly disagree. However, that is my perspective, and I do not impose my style on others.
This is exactly why I removed nearly all comments in secondary postings. But, this did seem to create a breakdown in the conversation, and that is definitely mine to own.
The topic that I would like to address is not to solve a specific engineering problem, but to aid others that deal with common system administration style tasks. Such tasks normally cover hundreds, if not thousands, of servers of all operating system flavours and states. So, the criteria that I established for myself was:
* Create a script to leverage Perl 'threads'
* Display functionality that uses a pool of common threads to perform a series of tasks.
* Display functionality that runs external commands with timed limitations.
* Display functionality that will terminate external commands, but does not kill the thread stack.
* Display functionality that allows for the sharing of data and reporting of collected information.
Although each of these items were address with the initial functionality of this posting, it was not addresses in the most optimal manner. Evaluating your design, I agree that is highly efficient and effective. Moreover, its memory footprint is about 1/3 the size of mine--very nice indeed.
Finally, I never intended for you to write for me. However, you did teach to me. I still wish to pursue a composite example for others to leverage as an example of using the common aspect of Perl threads. I honestly believe that such an example should not leverage modules which do-it-for-you because I feel that the learning, if not the understanding, is lost.
in reply to Re^7: RFC: Using 'threads' common aspects
in thread RFC: Using 'threads' common aspects