> 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'); }