open($fhname, "+<$devname") || die "cannot open serial device $devname $!\n"; $device->{fd} = fileno($fhname); select((select($fhname), $| = 1)[0]); print STDOUT "it got selected\n"; $fd = fileno($fhname); $tio = new POSIX::Termios; $tio->setispeed(B38400); $tio->setospeed(B38400); $tio->setiflag(IGNBRK|IGNPAR); $tio->setoflag(0); $tio->setlflag(0); $tio->setcflag(CS8|CLOCAL|CREAD|B38400); for (0 .. 16) { $tio->setcc($_, 0); } $tio->setcc(VMIN, 1); $tio->setcc(VTIME, 1); $tio->setattr($fd) || warn "Can't set attributes on $devname: $!\n";