I would highly recommend using Zmodem because of its built-in CRC and handshaking, but the big problem you're going to run into is that Zmodem requires bidirectional communication. Just sending the output of sz to the modem's filehandle won't do any good unless sz has access to data coming in from the modem as well. Fortunately, I think you can get Expect to connect two spawned processes together. I think the $object->interact() method of Expect will do what you want, but the documentation isn't terribly helpful. Assuming you already have an Expect object for your modem, you should be able to use something like IPC::Open2 to open a bidirectional filehandle for sz, then call interact on that filehandle. You shouldn't need to set the escape sequence, because you should get an EOF when sz is done.
--isotope
http://www.skylab.org/~isotope/
| [reply] |