in reply to MultiThreaded Program in perl

Anytime you are working with Perl and therefore with CPAN, you seriously need to be sure that you are “taking the long view.”   No matter what you are doing, it has probably been done before, such that there are numerous existing frameworks and components that can be “dropped into” your new project.   In other words, you are probably not building “a multi-threaded program.”   You’re building “a server,” and perhaps, one intended to “do this-or-that” such that “this-or-that” is some well-known and well-understood task.   Given this reality, you are probably in yet another “build vs. buy decision” that will be resolved (as most such things are) in favor of “buy” (albeit in this case, “for free”).

This is exactly why companies make a good living selling, say, prefabricated roof-joists ... pre-hung doors ... even manufactured walls and houses.   These are things that you could build for yourself, even to the point of chopping down your own trees and forging your own square nails, but it is highly unlikely to make practical sense to do so unless you are a historical preservationist.

Needless to say, no one can do this research and analysis for you, and “There Are No Silver Bullets.™”   But there are plenty of very excellent pre-hung doors and windows to choose from.

For instance:   Do you want a high-performance web server that can support a very large number of clients?   That is an extremely well-known and well-understood task.   Therefore, accomplishing that task can be (almost...) as simple as:   Some::Server::Class->new->run;   Seriously.   (You get my drift...   You will spend “80% of your time in 20% of the code,” so begin by grabbing “the other 80% of the code” from a carefully selected CPAN shelf.)

“Well, you can run the whole distance if you want to, o’course, but why don’t we just drive up to the finish line, and you can stroll across from there?”