use Net::Cisco; open(CONFIG,">config.csv"); print CONFIG "Router ip,Status\n"; open(ROUTERIP,"routerip.txt")or die "couldn't open routerip.txt"; open(COMMAND,"command.txt")or die "couldn't open command.txt"; while(<COMMAND>) { chomp($_); $comm=$_; } $count=0; while(<ROUTERIP>) { chomp($_); $router=$_; $tl=0; tel($router); $count++; } sub tel { $t =Net::Telnet::Cisco->new(Host=>$router,Timeout=>7,Errmode=>'return' +) or $tl=1; $lg=0; my @output; if($tl != 1) { print "$router Telnet success\n"; $t->login('vinth_vm', 'h0mes@ker') or $lg=1 ; if($lg != 1) { print "$router Login success\n"; @output=$t->cmd(string=>"$comm"); if(@output ne '') { chomp(@output); print "@output\n"; print CONFIG "$router,@output\n"; } else { print "no config\n"; print CONFIG "$router,no config\n"; } $t->close; } else { $loginstat="Login Failed"; print "$router $loginstat\n"; print CONFIG "$router,$loginstat\n"; } } else { $telnetstat="Telnet Failed"; print "$router $telnetstat\n"; print CONFIG "$router,$telnetstat\n"; } } close(CONFIG);
my code is for telnet into cisco router and execute a command and if that configuration exist then write that to one file but there is no configuration then it should write in output file as "no config" here the problem is with
part i dont know why ,if the configuration is there then in cisco it wont display any thing at that time ,i want to write as "no config" but its not happening ,the problem is with string comparison ,,,can any body help me?if(@output ne '') { chomp(@output); print "@output\n"; print CONFIG "$router,@output\n"; } else { print "no config\n"; print CONFIG "$router,no config\n"; }
In reply to Empty string checking in output by Kumar Mantri
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |