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


in reply to Getting a response from a socket

Both of these lines:

$socket->getline; my $output = <$socket>;

...read 'line oriented' input, i.e. they return when they read a newline from the socket. So if you want to read all the lines from the socket, you can use one of these:

while ( defined( my $line = $socket->getline ) ) { } while (my $line = <$socket>) { } my @lines = <$socket>;

The script either hangs or it just returns the "Welcome to device 'devicename', please input your commands".

Well, then it sounds like you should start your program by reading a line at a time from the socket--until the line you read matches that text, then send your command. Then read some more lines for the response.