Hello
 
I'm trying to write a simple script to test if a port is up or down.  It all depends 
on being able to parse for the word "Connected" in an array.  Try as I might, I can't 
figure out why the following regex comparison won't work.
 
if $reply[1] =~ /Connected/ {

The code snippet is as follows:
 
#!/bin/perl
$host = @ARGV[0];
$port = @ARGV[1];
@reply = `echo " " | telnet $host $port`;
if $reply[1] =~ /Connected/ {
     print "Port is up\n";
else
     print "Port is down\n";
}

If I comment out the if statement, and just print out the variables, I see what I'm 
expecting, e.g.:
 
     ...
     print $reply[1]
     Connected to ldsslcu151.chq.slc.ut.usa.wh.lds.

My preference would be to parse the whole array for "Connected" and not just presume 
placement in any element.  I tried storing the response to just a scaler (e.g., $reply 
= `echo " " | telnet $host $port`;), but I'm not sure how a scalar handles <cr> or 
<lf> characters.  Anyway, the solution is probably obvious to someone, and I'd be 
really grateful if they'd share it.
 
Lance


------------------------------------------------------------------------------
This message may contain confidential information, and is intended only for the use of 
the individual(s) to whom it is addressed.


==============================================================================

Reply via email to