my $smtp = '167.206.5.250'; # part 1, connect to server: use Socket; my $proto = (getprotobyname('tcp'))[2]; my $port = (getservbyname('smtp', 'tcp'))[2]; my $smtpaddr = pack('C4',$1,$2,$3,$4) if ( $smtp =~ /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/ ); socket(S, AF_INET, SOCK_STREAM, $proto) or die("socket failed: $!"); connect(S, pack('Sna4x8', AF_INET, $port, $smtpaddr)) or die("connect failed: $!");; # part 2, read first line: local($oldfh) = select(S); $| = 1; select($oldfh); while (my $line = ) { print "--> $line\n"; last; }