use strict; my ($percnt,$threshhold @p,$cntr, $flag, $CF, $alertaddr, $Esubject,); my $log = qq(/var/adm/USE_monitor.csv); my $cntrF = qq(/var/adm/USE_monitor.cntr); open LOG, "+<", $log or die "'$log' did not open $!\n"; ... {snip} ... if ( $percnt >= $threshhold ) { write (LOG); push @p, $percnt; } if ( -s $log ) { $cntr = 0; $flag = 1; open $CF, ">>", $cntrF or die "'$cntrF' did not open $!\n"; print $CF "$flag\n"; sleep 1; close $CF; sleep 1; open $CF, "+<", $cntrF or die "'$cntrF' did not open $!\n"; print $cntr; while (<$CF>) { while (m/\b$flag\b/g) { $cntr++; } } print $cntr; if ( $cntr <= 2 ) { _mailme($alertaddr, $Esubject, $log); $CF->close; } elsif ( $cntr > 2 ) { for (@p) { if ( $_ >= 99 ) { _mailme($alertaddr, $Esubject, $log); last; } } $CF->close; } else { $CF->close; }