in reply to Zmodem and Net::Telnet

What's open2? If it's from IPC::Open2, your third arg is incorrect. It shouldn't be an array ref. That's not going to fix the immediate problem, though.

If I were to guess at the cause of your problem, I'd guess that IPC::Open3 — IPC::Open2 is just an interface to IPC::Open3 — only supports handles with a fileno, and that sockets don't have a fileno on your system.