eval { local $SIG{ALRM} = sub { die "alarm clock restart" }; alarm 2; # schedule alarm for every 2 seconds eval { print "server1 $my_ipaddr\n"; $SybaseInterfaces::lookup_iptoname{$my_ipaddr} = gethostbyaddr(inet_aton($my_ipaddr), AF_INET); print "server2\n"; }; alarm 0; print "server3\n"; }; print "server4\n"; alarm 0; die if $@ && $@ !~ /alarm clock restart/; #reraise }