Hey all,
Okay, I'm still working on my little Net::Telnet project, but a different
section of the code is giving me a problem.  I thought I had an
understanding of regex an if/else, but apparently not.
Here's the code snippet:



open(TAIL, "tail $glmiss_log|") or die "Can't tail on $glmiss_log: $!\n";

while (my $status = <TAIL>){
        if ($status =~ /SERVICE NOT AVAILABLE/){
                print "Service not running, attempting to start.\n";
                print "This may take a few minutes.\n";
                $fix = 1;
        } else {
                print "Service is connected.\n";
                $fix = 0;
                exit;
        }
}

Okay, the $glmiss_log points to a logfile, and for test purposes I'm using
one that has the "Service not available" error at the end of it.  So the
first part of the if statement should pick it up.  Here's what the error
looks like in the log:

WARNG 05:02:10 VCI_Login :   TECH_VCI_ERROR 00120 - EXCHANGE SERVICE NOT
AVAILABLE

Now if I put [] around the regex, it matches it, but without it skips and
goes right to the else statement.  Do I need to put any pattern matching
for the rest of the line?  I basically just need it to see this error
(which if there's a problem will be the last line in the log file) and
then I have it do something once it exits the loop.

Thanks ahead of time,
Tom


-- 
#!/usr/bin/perl -w # 526-byte qrpff, Keith Winstein and Marc Horowitz
<[EMAIL PROTECTED]> # MPEG 2 PS VOB file on stdin -> descrambled output
on stdout # arguments: title key bytes in least to most-significant order
$_='while(read+STDIN,$_,2048){$a=29;$c=142;if((@a=unx"C*",$_)[20]&48){$h=5;
$_=unxb24,join"",@b=map{xB8,unxb8,chr($_^$a[--$h+84])}@ARGV;s/...$/1$&/;$d=
unxV,xb25,$_;$b=73;$e=256|(ord$b[4])<<9|ord$b[3];$d=$d>>8^($f=($t=255)&($d
>>12^$d>>4^$d^$d/8))<<17,$e=$e>>8^($t&($g=($q=$e>>14&7^$e)^$q*8^$q<<6))<<9
,$_=(map{$_%16or$t^=$c^=($m=(11,10,116,100,11,122,20,100)[$_/16%8])&110;$t
^=(72,@z=(64,72,$a^=12*($_%16-2?0:$m&17)),$b^=$_%64?12:0,@z)[$_%8]}(16..271))
[$_]^(($h>>=8)+=$f+(~$g&$t))for@a[128..$#a]}print+x"C*",@a}';s/x/pack+/g;eval

Reply via email to