in reply to Correct code crashes ActivePerl Interpreter

Windows has no signals. Perl offers a minimal signal emulation that has its own problems. See also Re: Handling killing the perl process and Re: Signals in Strawberry Perl: Name or number?.

Windows also has no fork() and no exec() API. Recent perl versions offer a more or less fragile emulation based on interpreter threads. In other words: Perl fakes several forked processes of the same script in a single Windows process.

Using both emulations plus threads is just begging for trouble.

Don't use signals, don't use fork(), don't use exec() on Windows. If you want signals, fork(), and exec(), get rid of Windows and run a UNIX derivate (*BSD, Linux, ...) instead. If you can't get rid of Windows, use Windows API functions instead of the fragile emulations. See Win32, Win32::API, Win32::Process and others.

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)

Replies are listed 'Best First'.
Re^2: Correct code crashes ActivePerl Interpreter
by BrowserUk (Patriarch) on Jan 17, 2011 at 22:34 UTC

    That may all be true for some definition of the term, but it is also completely irrelevant to the OPs problem.