I always imagined
IO::Socket as a wrapper object around the standard Socket API (maybe with some extra goodies not provided in C like handling those data length args which the perl socket Api does too) but this is just like wrapping your opens using a filehandle class which I can imagine is just as unoptimal (is that a word?). Its just a trick for ease of use and keeping your connections (or opens apart). So it's probably designed for cases where one is keeping track of lots' o conns (or opens). Thus it is not optimal for a new wrapper class where all you need is to send a quick message and retrieve a response. (A wrapper in a wrapper. In a way, all modules can be thought of wrappers.) So that means that the
IO::Socket would be a bad choice in this lib.
Also, I'm glad that the perl libs (especially at CPAN) are not liberally linked to each other since when I download one, I'd like to run out-of-the-box (this is the Windows complex), so a bunch of libraries linked to each other would severely complicate the process.