in reply to Socket shell ...

You cannot access data in other processes (I guess that's what you mean by shell) unless that process wants you to. Well there are hokey ways using debugger techniques, but you probably don't want to go there, and it would involve C and knowing TCL internals. So you have to use some Inter Process Communication method, and using sockets is one way, but the client must take an active part in sending that data.

I'm guessing that your problem is that the data in the clients is TCL, whereas your server is written in Perl. You will have to convert at each end into a common format, and text strings should do the trick. At the Perl end you can use pack and unpack to convert binary data if need be. An alternative mechanism is to use shared memory shmem but there is work to be done with synchronisation, and it can get very messy - and I have no idea if TCL supports it.