in reply to telnet passthrough 2

One of your questions I can answer for now: $switch is a filehandle (or more specifically, a socket). $switch is returned from sub switchConnect, where it is initialised as a Net::Telnet instance. Net::Telnet->new returns an instance of IO::Socket, which is a socket, which is a filehandle (well, respects filehandle semantics).

As to why your code fails to work on Win32/ActivePerl, I don't know (and have no way nearby to find out or test).

CU
Robartes-