#! perl -slw use strict; use Win32::Event; my $eventName = "MyEvent.$$"; print $eventName; my $event = new Win32::Event( 0, 0, $eventName ); my $timeout = rand 60000; print "Spawning a background script to wake me up in ", $timeout / 1000, " seconds"; ( my $cmd = <open(shift) and \$e->set or die \$^E " $timeout $eventName EOP system 1, $cmd; $timeout /= 1000; my $rv = 0; print "Event should occur in ", int( --$timeout ) until $rv = $event->wait( 1000 ); print $rv ? 'Woken' : 'Event abandoned'; __END__ [20:54:53.64] P:\test>412941 MyEvent.648 Spawning a background script to wake me up in 17.080078125 seconds Event should occur in 16 Event should occur in 15 Event should occur in 14 Event should occur in 13 Event should occur in 12 Event should occur in 11 Event should occur in 10 Event should occur in 9 Event should occur in 8 Event should occur in 7 Event should occur in 6 Event should occur in 5 Event should occur in 4 Event should occur in 3 Event should occur in 2 Event should occur in 1 Event should occur in 0 Waking them Woken