http://www.perlmonks.org?node_id=649916


in reply to socket time out

you could try using alarm in an eval block (untested):
eval { local $SIG{'ALRM'} = sub { die "Timed out" }; alarm($timeout); while(<$conn>) { .... alarm($timeout); } alarm(0); } if ($@ =~ /Timed out/) { print STDOUT "Timed Out.\r\n"; }
Oha

Replies are listed 'Best First'.
Re^2: socket time out
by xarex (Initiate) on Nov 09, 2007 at 16:08 UTC
    being new to perl i tried that exactly as you said
    but its giving complitaion errors,
    could you please try to be a little more specific?
    Thanks
    K-
      It's just missing a ; in the example at the end of the eval closing brace:
      eval {
          local $SIG{'ALRM'} = sub { die "Timed out" };
          alarm($timeout);
          while(<$conn>) {
             ....
             alarm($timeout);
          }
          alarm(0);
      };
      if ($@ =~ /Timed out/) {
          print STDOUT "Timed Out.\r\n";
      }