http://qs321.pair.com?node_id=1009044


in reply to Re^2: Telnet Client/Server: What am I doing wrong?
in thread Telnet Client/Server: What am I doing wrong?

the previous post asked for working examples... it's difficult to cut out brief parts

Though it may be difficult, it's a good training exercise for you in learning Perl. The act of creating a small cut-down program should help you focus on and better understand the problem; you may even find you're able to identify the problem and fix it yourself.

BTW, instead of your global NS file handle and the:

select (NS); $|= 1; select (NS);
claptrap, you should use a lexical file handle ($ns say) and then simply:
use IO::Handle; # ... $ns->autoflush();

For Perl 5.14+ you don't even need use IO::Handle because:

Before Perl 5.14, lexical filehandles were objects of the IO::Handle class, but you had to load IO::Handle explicitly before you could call methods on them. As of Perl 5.14, lexical filehandles are instances of IO::File and Perl loads IO::File for you.

With recent Perls (5.8+), there's no need anymore to confusingly change the (global) default destination for print statements via the old evil one-argument form of select -- for more details, see Perl Best Practices, chapter 10 (I/O) and Perl tip: Buffering and IO::Handle by TheDamian.

Suggest you further read Suffering from Buffering by MJD.

Replies are listed 'Best First'.
Re^4: Telnet Client/Server: What am I doing wrong?
by PM_Visitor (Initiate) on Dec 16, 2012 at 18:12 UTC

    Thank you for the feedback and document references!
    I'm going to continue to read the Lincoln Stein Book, will check out the Best Practices book as well.
    I have read the Suffering from Buffering! A good read, indeed :).