Seite 1 von 1
Wer kann gut Perl...
Verfasst: 16.05.2005 21:27
von Torakas
Hi Leute,
ich braeuchte mal jemanden der vielleicht eine oder andere passage aus einem Programm erklaeren wuerde.
Ich bin gerade dabei ein Perl Programm in PB zu schreiben.
Also wer koennte mir ein wenig helfen..
Gruß,
Torakas
Re: Wer kann gut Perl...
Verfasst: 16.05.2005 22:00
von traumatic
Am besten einfach die betroffenen Code-Fragmente posten, dann
kann Dir im Zweifelsfalls besser/einfacher geholfen werden.
Verfasst: 16.05.2005 22:00
von FloHimself
Poste doch einfach etwas Source und stell Deine Frage dazu!?
Verfasst: 17.05.2005 23:09
von Torakas
FloHimself hat geschrieben:Poste doch einfach etwas Source und stell Deine Frage dazu!?
Nun, hier mal der Code... Ich komme einfach damit nicht klar was dort gemacht wird. Besonders das mit der Whilebedingung oder so... Was wird in der langen IF ifelse bereich überprueft...
Ich weiss. Fragen über Fragen... Ich kann es nur erraten was er macht, aber ich wuesste es gerne genauer...
Code: Alles auswählen
my $vars;
$vars = new SNMP::VarList( [".1.3.6.1.2.1.43.18.1.1"] );
my $alert_var = $1;
my $alert_ind = $2;
my $tint = $sess->getnext($vars);
print $sess->{ErrorStr} if ($sess->{ErrorStr});
while (!$sess->{ErrorStr} and $$vars[0]->tag =~ /43.18.1.1.(\d+).1.(\d+)/){
my $pos = $$vars[0]->iid;
# print $$vars[0]->tag . " $1 $2 -> $tint<br>\n";
$alert_var = $1;
$alert_ind = $2;
if ($alert_var eq 2) {
$printer_alert{$alert_ind}{'severity_level'} = $tint;
} elsif ($alert_var eq 3) {
$printer_alert{$alert_ind}{'training_level'} = $tint;
} elsif ($alert_var eq 4) {
$printer_alert{$alert_ind}{'group'} = $tint;
} elsif ($alert_var eq 5) {
$printer_alert{$alert_ind}{'group_index'} = $tint;
} elsif ($alert_var eq 6) {
$printer_alert{$alert_ind}{'location'} = $tint;
} elsif ($alert_var eq 7) {
$printer_alert{$alert_ind}{'code'} = $tint;
} elsif ($alert_var eq 8) {
$printer_alert{$alert_ind}{'description'} = $tint;
} elsif ($alert_var eq 9) {
$printer_alert{$alert_ind}{'time'} = $tint;
}
$tint = $sess->getnext($vars);
};
Danke schonmal für eure Hilfe... Evtl kann ich auch den ganzen Code mal hinterlegen damit ihr euch das ganze programm mal anschauen koennt. Evtl braucht ihr es auch um die einzelnen sachen zu verstehen..
Wenn ja, dann einfach posten..
Gruß,
Torakas
Verfasst: 20.05.2005 19:20
von grapy
Hi,
ich kann zwar gut Perl, aber mit SNMP kann ich leider nichts anfangen.
http://search.cpan.org/src/GSM/SNMP-1.8.2/SNMP.pm
Aber in etwa zu ifelse,
wenn $alert_var gleich "die Zahlen 2-9" dann werden
der assozativen Variable $printer_alert{}{} die Werte
von $tint zugewiesen. Aber warum weiß ich leider nicht.
Und zu while,
Solange nicht $sess->{ErrorStr} und $$vars[0]->tag =~
das folgende ist nur ein Suchvergleich /43.18.1.1.(\d+).1.(\d+)/
Ein String fängt mit "43.18.1.1." an dann ein paar Zahlen dazwischen und
geht mit ".1." weiter dann am Ende noch ein paar Zahlen.
Gruß

grapy