$widget->repeat(2000, \&CheckInput); MainLoop; sub CheckInput { foreach my $data ($select->can_read(1)) { my $rv = $data->recv(my $buffer, POSIX::BUFSIZ, 0); unless (defined($rv) && length $buffer) { &WWrite("\n[Disconnected]\n"); exit(0); } &WWrite(&filter($buffer)); } $widget->update(); }