You could use the errmode method of Net::Telnet. The default error mode is "die", which you are experiencing. The alternative is "return", in which case Net::Telnet (or, in your case Net::Telnet::Cisco) will return and you will have to check for errors.
Something like the following might work:
if ( $session ) { $session->errmode('return'); ### Login to privileged exec mode ### $session->login( Name => $uid , Password => $pawd ); # $session->enable( $pawd );
Another solution, particularly if Net::Telent::Cisco is dieing despite setting the error mode to 'return', is to use eval to catch that. Maybe something like:
foreach $entry (@iplist) { chomp ($entry); eval { &SDM }; if($@) { # log the error open ( ERROR_LOG, ">>$dte-error.txt") or die "Could not open $dte-error.txt.\n"; print "$entry: failed with $@ !\n"; print ERROR_LOG "$entry: failed with $@ !\n"; close ERROR_LOG; } }
In reply to Re: Trapping errors in Net::Telnet::Cisco
by ig
in thread Trapping errors in Net::Telnet::Cisco
by kc6ovd
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |