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



2009/8/4 Alex.Lee <[email protected]>

>
> 各位同行:
> 你们好,我在用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 讨论组”论坛。
 要在此论坛发帖,请发电子邮件到 [email protected]
 要退订此论坛,请发邮件至 [email protected]
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

回复