use strict;
use warnings;
use Win32::SerialPort;    # Windows-Variante

$| = 1;

my ($i, $string);
my $port = Win32::SerialPort->new('COM1')
    or die "Oops!\n";

# Parameter setzen
$port->baudrate(110)	    || die "baudrate geht nicht\n";
$port->parity('none')	    || die "parity geht nicht\n";
$port->databits(8)        || die "databits geht nicht\n";
$port->stopbits(1)        || die "stopbits geht nicht\n";
$port->handshake('rts') 	|| die "handshake geht nicht\n";
# defined, weil "0" ein legaler Rueckgabewert ist
defined $port->parity_enable('T')	|| die "parity_enable geht nicht\n";

$port->error_msg(1);       # Fehlermeldungen des Moduls verwenden
$port->user_msg(1);

# Devicecontrolblock schreiben
$port->write_settings	    || die "write_setings geht nicht\n";

for $i (1 .. 10)
  {
  # Textstring senden
  $port->write("the quick brown fox jumps over the lazy dog\r\n");
#  sleep 1; # etwas warten
  # Antwort empfangen
  if (($string = $port->input()) ne '')
    {
	  $string =~ s/\r//;            # Carriage Return vernichten
	  print $string;                # empfangene Zeichen ausgeben
    }
  last if ($port->reset_error);   # Fehlerabbruch
  }
print "\nEnde\n";
sleep 1;
$port->close();
undef $port;