use strict; use warnings; my $window = 30.0 / 1440; # 30 minutes my $error_file = 'error.txt'; my $error_message = shift; chomp($error_message); if (! -e $error_file) { # generate warning and then write_error_file(); } else { chomp(my $old_error = `cat $error_file`); # two conditions warrant a warning # a) either a new type of error or b) it has been # more than 30 minutes since we last saw this one if (($old_error ne $error_message) || (-M $error_file > $window)) { # generate warning and then write_error_file(); } } sub write_error_file { my $ofh; print "New error $error_message\n"; open $ofh,'>',$error_file; print $ofh $error_message; close $ofh; }