in reply to $ENV{TERM} and Net::Telnet

I don't believe Net::Telnet does terminal type option negotiation. As a result, setting this environment variable probably isn't having any effect.

To see the types of option negotiation performed with your stock 'telnet' application, use the "toggle options" command:

$ telnet telnet> toggle options Will show option processing. telnet> open ...
You should then get a bunch of diagnostic output showing the telnet options being passed back and forth, and among those should be options specifying a willingness to negotiate terminal type and the request and reply with the actual information.

Your job, should you choose to really need it, would be to get your Net::Telnet object to send these options when you make your connection, probably through callbacks and the like. Looking at documentation for the module, the 'option_send' function should start you on the track, but it doesn't look like it's implemented. You've gotta let the other end know you're willing to do terminal type negotiation, and presumably then you could use the option_callback function to respond to a request for the terminal type. :/