Makes sense, though it's odd that if I use Device::Serial port on a linux box instead, I get basically the same bug. No Win32 errors, of course, but nothing goes out the serial port.
Device::SerialPort and Win32::SerialPort only share a common outside interface...the code itself is quite different.