Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid

Re: Trapping errors in Net::Telnet::Cisco

by ig (Vicar)
on Jun 07, 2011 at 06:15 UTC ( #908407=note: print w/replies, xml ) Need Help??

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 (Novice) on Jun 07, 2011 at 19:29 UTC
    Thanks! I see where I was setting the return in the wrong spot. I had it in the line with the ftp commands. moving it to the top of the loop solved the problem of the die rather than return. The eval made a much better way to collect the errors to log. Again thanks... -Kevin

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://908407]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (5)
As of 2018-03-20 08:35 GMT
Find Nodes?
    Voting Booth?
    When I think of a mole I think of:

    Results (248 votes). Check out past polls.