in reply to Checking a running daemon

The reason unless everything appears dead is once $allcool has been set to false (as it will if any of the processes before or after it don't match $process), there's no way for it to become true again.

Instead, consider inverting your logic so that your state is always false until proved otherwise, like...

my $allcool = 0; # start false foreach my $psaxline (@psax_list) { $allcool++ if ($psaxline =~ /$process/); } unless ($allcool) { print "$process does not appear to be running!\n"; }

...or even simpler...

print "$process does not appear to be running!\n" unless grep /$process/, @psax_list;

... which does pretty much the same thing, as grep returns only it's matches, so if there aren't any...

    --k.

Update: markup fixes.