in reply to eval problem

In Perl, signals no longer interrupt opcodes, except for Perl IO operations. Perl checks if a signal was received between executing opcodes. Net:SSH2 is a wrapper for C library libssh2. libssh2 doesn't know anything about Perl. All the IO is done using C IO, not Perl IO, so alarm will not interrupt Net::SSH2 while it waits for libssh2 to return data.

The reason for this change (and how to switch to the dangerous old system) is documented in Deferred Signals in perlipc.