The following example demonstrates how eval is used with an alarm handler. If the time-out occurs, the eval block dies, returns 0 and control is transfered to the next statement.
...
#
$proto = getprotobyname('tcp');
$port = getservbyname('ssh', 'tcp');
for $sub ( 1 .. 255)
{
$node = "131.169.$net.$sub";
socket( SOCKET, PF_INET, SOCK_STREAM, $proto);
$sin = sockaddr_in($port, inet_aton( $node));
eval
{
local $SIG{ALRM} = sub { die };
alarm(1);
connect(SOCKET,$sin);
alarm 0;
} || next;
$reply = <SOCKET>;
if( defined $reply)
{
...
}
close( SOCKET);
}