Hallo liebe Perlgemeinde!
Ich arbeite zZ an meinem Abschlussprojekt (Fachinformatikerausbildung) und habe ein Problem, dass ich trotz Perl in a Nutshell, google, cpan.... nicht lösen kann.
Ich verwende für einen Telnetconnect Net::Telnet::Cisco
http://nettelnetcisco.sourceforge.net/docs.html
mein Problem:
das Script arbeitet viele Geräte in einer schleife ab, wobei der Connect so aussieht:
-------------------------------------------------------
1: use Net::Telnet::Cisco;
2:
3: foreach $geraet
4:{
5:my $session = Net::Telnet::Cisco->new(Host => '$Geraet');
6:$session->login('login', 'password');
7:
8:my @output = $session->cmd('show version');
9:print @output;
10:$session->close;
11:}
-------------------------------------------------------
(Syntax beschreibt prinzipiell das skript, also syntaxfehler sind zu vernachlässigen)
so ist das Prinzip.
Das Problem:
Wenn ein Gerät nicht erreichbar ist (ping nicht möglich) bricht die ganze foreachschleife ab, mit der meldung:
problem connecting to "blablub", port 23: connect timed-out at script.pl line 5
Wenn ich einen falschen Benutzername & Password eingebe, kommt:
login failed:access denied or bad username at script.pl line 6
Das ist soweit ja alles ganz in ordnung, aber ich würde gerne statt dem abbruch der kompletten foreach-schleife als $output dann ausgeben:
"gerät nicht erreichbar" bzw "login falsch".
ich habe schon versucht ein "or echo "ERROR" " hinter Zeile 5 und 6 zu schreiben, aber das hat die selben Fehlermeldungen erzeugt.
ich hoffe ihr könnt mir in der sache helfen
vielen dank im vorraus!
LiGo\n\n
<!--EDIT|renee|1091091023-->