in reply to Trapping errors in Net::Telnet::Cisco
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; } }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Trapping errors in Net::Telnet::Cisco
by kc6ovd (Acolyte) on Jun 07, 2011 at 19:29 UTC |