my $sock = new IO::Socket::INET( PeerAddr => $addr, PeerPort => "poke($nPOKEPORT)", Proto => 'tcp', Timeout => $nPOKESERVERTIMEOUT ); #### sub timeout { $SIG{'ALRM'} = \&timeout;print "Socket Timeout\n"; } $SIG{'ALRM'} = \&timeout; eval { alarm($nPOKESERVERTIMEOUT + 1); while (my $line = <$sock>) { $data .= $line; } alarm 0; } #### sub timeout { die "Socket Timeout\n"; }