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;