Looks good.
I can add a few suggestions. You can reduce the number of lines to search by refining the ps call. It appears that you are checking daemon status, so `ps x` to show only processes with no controlling tty will cut the search space a lot.
You could improve the process check loop like this:
@regexen = @process; for (@regexen) { quotemeta; $_ = qr/$_/; } for ( my $i = 0; $i <= $#alert; $i++ ) { unless(grep /$regexen[$i]/ , @ptable) { $alerts{"$alert[$i]"} .= "\n$message[$i]"; } }
The quotemeta in the regex will save some hard to diagnose errors. and precompiling will likely save time since they are used to scan all the process entries.
A third improvement would be to reformulate your search to stop scanning when a regex matches, and to not check that regex again afterwards. See merlyn's reply to Ovid's (OT) Interview questions -- your response?, question 1.
After Compline,
Zaxo
In reply to Re: Anticipation of future needs and other musings from the crystal ball
by Zaxo
in thread Anticipation of future needs and other musings from the crystal ball
by Limbic~Region
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |