sub testcondition { my $work = trim($_[0]); if ($work =~ /^\((.+)\)$/) { $work = trim($1); } if ($work =~ /^(.+)\|\|(.+)$/) { my($or1,$or2) = ($1,$2); if ((testcondition($or1) eq 'T') || (testcondition($or2) eq 'T')) { return 'T'; } } elsif ($work =~ /^(.+)\&\&(.+)$/) { my ($and1, $and2) = ($1, $2); if ((testcondition($and1) eq 'T') && (testcondition($and2) eq 'T')) { return 'T'; } } elsif ($work =~ /^(.*[^=<>])[=<>]+)([^=<>].*)$/) #updated { my ($r1, $r2, $r3) = ($1, $2, $3); if (isanumber($r1) && isanumber($r3)) { if (eval("$r1 $r2 $r3")) { return 'T'; } else { return 'F'; } } } return '?'; }