http://www.perlmonks.org?node_id=505529


in reply to Re^2: Win32::OLE and alarm
in thread Win32::OLE and alarm

What about using Win32::OLE->SpinMessageLoop() and creating your own timer loop.