which select() says is safe to read/write or called in any case on a socket which is O_NONBLOCK Significant work is still required.
Net::SAM::StreamSession is currently unimplemented. Net::Sam::[Datagram|Raw]Session block when they shouldn't and are buggy.