http://qs1969.pair.com?node_id=794982


in reply to Signals in Strawberry Perl: Name or number?

Strawberry Perl runs on Windows. Windows does not have signals. POSIX systems like Linux have signals.

Perl emulates some minor aspects of kill() on Windows, but you can't expect the emulation to be perfect.

From perlport:

kill() doesn't have the semantics of raise(), i.e. it doesn't send a signal to the identified process like it does on Unix platforms. Instead kill($sig, $pid) terminates the process identified by $pid, and makes it exit immediately with exit status $sig. As in Unix, if $sig is 0 and the specified process exists, it returns true without actually terminating it. (Win32)
kill(-9, $pid) will terminate the process specified by $pid and recursively all child processes owned by it. This is different from the Unix semantics, where the signal will be delivered to all processes in the same process group as the process specified by $pid. (Win32)

From perlwin32:

Signal handling may not behave as on Unix platforms (where it doesn't exactly "behave", either :). For instance, calling die() or exit() from signal handlers will cause an exception, since most implementations of signal() on Win32 are severely crippled. Thus, signals may work only for simple things like setting a flag variable in the handler. Using signals under this port should currently be considered unsupported.

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: Signals in Strawberry Perl: Name or number?
by bv (Friar) on Sep 14, 2009 at 13:37 UTC

    Thanks to everyone who has answered, and especially afoken for pointing me to a couple docs I hadn't read. Very helpful!

    print pack("A25",pack("V*",map{1919242272+$_}(34481450,-49737472,6228,0,-285028276,6979,-1380265972)))