Perl: Net::Telnet中cmd返回值的问题
以下有两个循环,功能是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" );
}