I finally got a chance to play with the PlRPC server and client. It's *similar* to what I wrote, but I think my version is more flexible. As far as I can tell, the available methods *must* be defined *within* the server program itself, whereas my program allows you to call external modules, albeit I have more rigid rules about the available methods ('new' and 'interact' only).
Then again, maybe you can just slap more and more modules into the @ISA array within the server, but that's clunky and hardly dynamic and it doesn't get me any further than I already am. It's also contrary to one of the things we wanted to accomplish - the ability to add functionality *without* ever touching the server.
Perhaps there's a way to dynamically load a package into the server itself, call the package's method for that server, and return back to the client, freeing up the memory afterwards. That would probably be dog slow, *unless* I can figure out how to compress a data structure. I've never tried it before. Maybe it's easy - dunno.
One other thing - the server doesn't seem to auto-background itself. Maybe there's an option for it and I haven't found it. If not, there definitely should be an option.
All of this is giving me lots of ideas, though. :)