in reply to telnet passthrough 2

You might be running into problems with fork() on Windows. ActivePerl emulates fork but it isn't the most reliable thing.

Also, why are you reading a single byte at a time with sysread? You can read as much as you can into one buffer. On sockets, sysread will return the available data and not wait until the entire length is read. That way you cut down on the number of system calls without worrying about blocking. Do you really mean to have only one telnet session?

Also, you should be using use strict and use warnings. You should also use lexical (my) variables instead of global variables.