sub doit { $host="$aa.$bb.$cc.$dd"; $port="23"; $fnd=""; $pong=`ping -c 3 $host -v`; #is there really a "-t" option here? $fnd=($pong=~m/(...)%/gi); $xcd=$1; if ($xcd!=100) { $remote = IO::Socket::INET -> new ( Proto => "tcp", PeerAddr => $host, PeerPort => $port, Timeout => 1 ); $| = 1; if ($remote) { close $remote; print "Socket ready..."; } else { print "Try again!"; } } }