sub channel_write { my ($self,$message) = @_; return 0 if (! defined $self->{channel}); eval { my $_msglen = length($message); my $_written = 0; alarm 10; my $_msgsend = $self->{channel}->write($message); return 0 if (! defined $_msgsend); $_written += $_msgsend; while ($_written < $_msglen) { # not completely xmitted my $_todo = substr($message,$_written); $_msgsend = $self->{channel}->write($_todo); return 0 if (! defined $_msgsend); $_written += $_msgsend; } alarm 0; }; return 0 if ($@); return 1; }