What is the architecture here? Peer-to-peer, client-server?
packets floating in a TCP/IP stream with a field in the binary format for "substream ID" or something like that would be doable.
That's all multiplexiing really is ... packets inside of some encapsulating format.
Pack/unpack is a PITA ... if someone has a good Perl-data-structure to binary implementation, I'd like to hear of it too, something like YAML (or even the dreaded XML) would be language agnostic, but you don't want to send that over the wire if you care about efficiency. Heck, you really don't want to parse it either. If it's Perl <-> Perl maybe Storable is okay, you could freeze a packet class or something?