my $serial_port = start Win32::SerialPort('pump.cfg'); $serial_port->write_settings; $serial_port->write("aU\n"); sleep(1); # Same result w/ and w/o sleep here too while (1) { my ($rb, $byte) = $serial_port->read(1); if ($rb > 0) { print $byte; } else { last; } }