I was thinking about writing a Perl script that would run interactive shells, like windows FTP and Telnet. However, I am having difficulty printing to or from the process with the Perl script, and consequently cannot manage the process. Modules I saw online, like IO::Pty and Expect, don't have functionality in Windows Activestate, but do exactly what I am looking for.

IO::React and Net::Telnet look promising in dealing with interactive processes, but rely on a pre-opened handle to the process to do so (unless I am misunderstanding).

If you know of a way to open a handle to an interactive process in Windows Perl, I would love to know about it!

One of the advantages of using Net::Telnet and Net::FTP (or the underlying IO::Socket which they use), is that your script can be platform independent. If you use a Win32 specific module, then you're locked into using that script only on Windows boxes. I try to avoid that whenever possible.

[edit] I should make a clarification. Win32::Socketpair::winopen2 creates a socket which is then wrapped in a filehandle. [/edit]