http://www.perlmonks.org?node_id=941912


in reply to Re^2: IO::Socket Listen
in thread IO::Socket Listen

but this program takes 5 minutes to respond

The problem probably is that the device isn't sending a newline, so the <$sock> (i.e. readline) keeps waiting for it until the socket is finally closed — which is likely what is happening due to a timeout after those 5 minutes...

Try sysread instead (with a length value larger than the response you expect).

while ( sysread $sock, $_, 1000 ) { print $_; }