eval { die if !$sockout->can_write( $TIMEOUT ) }; #-- or : eval { local $SIG{'__WARN__'} = sub { }; #---- ignore warnings in the eval $fd = new IO::Socket::INET( PeerAddr => $details{'server'}, PeerPort => $details{'port'}, Proto => 'tcp') or die $@; }; if ($@) { #---- connect failed $log->write('TRACE', "Can't connect TCP $@ \n") if $out; } else { my $sel = IO::Select->new( $fd ); #---- for timeout eval { die if !$sel->can_write( $TIMEOUT ) };