2009年8月8日星期六

[PerlChina] Re: 关于NET::telnet的窗口大小问题;


 
好像Term::**   管这个 事情的, 可以查下
 
 

 
2009/8/4 Alex.Lee <liwei.workmail@gmail.com>

各位同行:
你们好,我在用perl写一个程序,telnet到某个终端,然后在该终端运行某个命令,并把命令运行的结果print到本机日志
telnet_input.log中去,但是由于该命令是读终端数据库,返回的数据每行默认不能超过80个字符。导致print回来的日志发生了自动
行,导致读日志数据很不方便,还得人工处理换行。不知道各位同仁有没有谁知道在用NET::telnet模块的时候,怎样设置返回字符的长度?我看了
NET::telnet.pm模块,里面确实有控制返回字符长度的sub TELOPT_NAMS ()方法,但是其内容是空的。是不是perl5还不
支持telnet的窗口调整?
我写的源代码如下,恳请高手不吝赐教!


use strict;
use Net::Telnet ();
my  $ip = '**.***.**.**';
my  $user = '**';
my  $passwd = '****';
my  $telnet = new Net::Telnet (Timeout => 10,
                               Prompt =>'/[\$%#><:]\s*$/');
   $telnet->open( Host=>$ip,
                      Timeout => 30);
   $telnet->login( Name=>$user,
                        Password=>$passwd,
                       Timeout => 30);
   $telnet->input_log("/test.perl/telnet_input.log");
   $telnet->output_log("/test.perl/telnet_output.log");

my  $sql = 'select ……';
   $telnet->cmd
   (
    String => "$sql",
    Prompt =>'/[\$%#><:]\s*$/',
    Timeout=> 360
   );

   $telnet->waitfor(/^\>$/i);
   $telnet->print("exit");

--
           Yours Sincerely
                   Zeng Hong

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

没有评论: