in reply to Problem Searching an array for a string... Please Help!

Ok I'm confused by something here...

&Search_Buff($decide == "1")

You are using a conditional statement as an argument to the &SearchBuff subroutine. But it appears that $decide which you are testing in the conditional is defined in &Search_Buff. This will not work because the conditional is being evaluated before the subroutine is executed. It looks like you want &Search_Buff to return a boolean value, and then test that. try something like this:

if (&Search_Buff()){ &Site_Up; } else { &Site_Down; } # Sub to search gethttpbuff.txt for a string & return 0 or 1 sub Search_Buff { # Open hethttpbuff.txt file, create an array with the data & close +file. End if file is locked. open (gethttpbuff, "gethttpbuff.txt") || die("Could not open file!" +); @array = <gethttpbuff>; close(gethttpbuff) # If search string is found make var equal to "1". If the search st +ring is not found make var equal to "0" foreach $line (@array) { if ($line =~ /$search/) { return 1; } } return undef; # or return 0; }

Update: Found a logicall flaw in my code. Correcting it.

May the Force be with you

Replies are listed 'Best First'.
Re^2: Problem Searching an array for a string... Please Help!
by dragonchild (Archbishop) on Feb 24, 2005 at 17:08 UTC
    Instead of return undef;, just use return;. That will work in list context as well as scalar/boolean context.

    Being right, does not endow the right to be rude; politeness costs nothing.
    Being unknowing, is not the same as being stupid.
    Expressing a contrary opinion, whether to the individual or the group, is more often a sign of deeper thought than of cantankerous belligerence.
    Do not mistake your goals as the only goals; your opinion as the only opinion; your confidence as correctness. Saying you know better is not the same as explaining you know better.