use Fcntl qw/:DEFAULT/;
use IO::Termios ();
use IO::Stty ();
sysopen my $fh, '/dev/ttyUSB0', O_RDWR or die "sysopen: $!";
my $handle = IO::Termios->new($fh) or die "IO::Termios->new: $!";
$handle->set_mode('300,7,e,1');
IO::Stty::stty($handle, qw/ cs7 parenb -parodd raw -echo /);
my $raw = "\x2F\x3F\x21\x0D\x0A";
$handle->syswrite($raw) == length($raw) or die "syswrite";
my $raw = "\x06\x30\x30\x30\x0D\x0A";
$handle->syswrite($raw) == length($raw) or die "syswrite";
while(1) {
my $toread = 1;
$handle->sysread(my $in, $toread) == $toread or die "sysread";
print $in;
}
$handle->close;