our $isleep = 15; # Number of seconds to sleep between iterations { my $counter = 0; sub Callback_Running { my($Event, $Context) = @_; if(SERVICE_RUNNING == Win32::Daemon::State()) { $counter += 5; print $fh $counter . "\n"; if ($counter >= $iSleep * 60) { print $fh "Checking in.\n"; # do stuff; $counter = 0; } $Context->{last_state} = SERVICE_RUNNING; Win32::Daemon::State( SERVICE_RUNNING ); } } }