> sub handle_connection {
>      my ($client) = shift;
>      my $message;
>      $message = Tkx::gets($client);
>      if ( defined $message and $message !~ /^quit/ ) {
>          $message =~ s/[\r\n]+$//;
>          $log->insert( 'end', "$message\n" );
>          $log->see('end');
>      }
>      else {
>          print "connection closed\n";
>          $log->insert( 'end', "connection closed\n" );
>          $log->see('end');
>          $client->close();
>      }
> }

this works bettr:

sub handle_connection {
     my ($client) = shift;
     my $message = Tkx::gets($client);
     if ( !Tkx::eof($client) ) {
         $message =~ s/[\r\n]+$//;
         $log->insert( 'end', "$message\n" );
     }
     else {
         print "connection closed\n";
         $log->insert( 'end', "connection closed\n" );
         eval {Tkx::close($client);}; ## this was incorrect - $client->close();
     }
     $log->see('end');
}

Reply via email to