Perl: Net::Telnet中cmd返回值的问题

DanielC 2007-09-26 12:11:55
以下有两个循环,功能是telnet远端主机,执行命令,将命令返回的结果存入@buffer,再通过echo命令将@buffer中的元素写入tempfile中。
问题出现在这里:进入第一个循环,@buffer中的元素均可写入;然后进入第二个循环时,无法将@buffer中的元素写入tempfile;两个程序的逻辑相同。
请教大家,这个问题该如何解决呢,谢谢~


for(my $t=0;$t<$vmgwidnum;$t++)
{
$tmpcmd = "lhsh $mesc_counters_gcp[$l] mesc_counters_gcp $VmgwId[$t]";
system("echo '*****************************' >>$tempfile");
system("echo 'COMMAND : $tmpcmd' >> $tempfile" );
@buffer = $telnet -> cmd("$tmpcmd");
foreach $linebuffer (@buffer)
{
#print "******###### $linebuffer";
system("echo '$linebuffer' >> $tempfile");
}
system("echo 'COMMAND END' >>$tempfile" );
system("echo '' >>$tempfile" );
}

####################第二个#############################################
for(my $t=0;$t<$chnum;$t++)
{
$tmpcmd = "lhsh $ch_counters_command[$t] ch_counters_command";
("echo '***************************************************' >>$tempfile");
system("echo 'COMMAND : $tmpcmd' >> $tempfile" );
@buffer = $telnet -> cmd("$tmpcmd");
foreach $linebuffer (@buffer)
{
print "%%%%%%%%% $linebuffer";
system("echo '$linebuffer' >> $tempfile");
}
system("echo 'COMMAND END' >>$tempfile" );
system("echo '' >>$tempfile" );
}
...全文
636 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
CCWRSS 2011-04-06
  • 打赏
  • 举报
回复
请问是怎么解决的呢?
DanielC 2007-09-27
  • 打赏
  • 举报
回复
问题已经解决,多谢热心帮忙
DanielC 2007-09-26
  • 打赏
  • 举报
回复
第二个循环,我加了这句
print $telnet - > cmd("$tmpcmd");
是有值的,但打出的值,和第一个是一样的
Aylazhang 2007-09-26
  • 打赏
  • 举报
回复
那就在第二个@buffer = $telnet - > cmd("$tmpcmd"); 后print "@buffer";看看有值没有啊
DanielC 2007-09-26
  • 打赏
  • 举报
回复
use warning;
use strict;
my $linebuffer;
之前是都有声明的
Aylazhang 2007-09-26
  • 打赏
  • 举报
回复
use warnning;
use strict;

另外,foreach $linebuffer (@buffer) # 改成foreach my $linebuffer (@buffer)

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧