Wer kann gut Perl...

Fragen zu allen anderen Programmiersprachen.
Torakas
Beiträge: 63
Registriert: 13.09.2004 09:56

Wer kann gut Perl...

Beitrag 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
traumatic
Beiträge: 478
Registriert: 27.11.2004 15:42

Re: Wer kann gut Perl...

Beitrag von traumatic »

Am besten einfach die betroffenen Code-Fragmente posten, dann
kann Dir im Zweifelsfalls besser/einfacher geholfen werden.
FloHimself
Beiträge: 338
Registriert: 05.09.2004 18:47

Beitrag von FloHimself »

Poste doch einfach etwas Source und stell Deine Frage dazu!?
Torakas
Beiträge: 63
Registriert: 13.09.2004 09:56

Beitrag 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
Benutzeravatar
grapy
Beiträge: 108
Registriert: 09.09.2004 09:05

Beitrag 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ß :mrgreen: grapy
Antworten