use Win32::SerialPort; use strict; use warnings; $| = 1; #enable autoflush my $PortName = "COM3"; my $sendData = "12345678"; ### SERIAL PORT SETUP ### my $PortObj = new Win32::SerialPort($PortName) or die "Can't open $PortName: $^E\n"; $PortObj->error_msg(1); # prints hardware messages like "Framing Error" $PortObj->user_msg(1); # prints function messages like "Waiting for CTS" $PortObj->baudrate(57600); $PortObj->parity("none"); $PortObj->databits(8); $PortObj->stopbits(1); $PortObj->handshake("none"); $PortObj->write_settings or die "failed to write_settings"; my $count_out = $PortObj->write($sendData) or die "write failed: $^E"; sleep(3); $PortObj->close() || warn "\nClose failed\n";