$serverresponse = $session->get_table($SystemTempEntry); $session->close; #Die Table wird erfolgreich als Hash abgehollt (Eine Temperaturabfrage einer Storage Systems) foreach my $snmpkey (keys %{$serverresponse} ) { my ($oid,$key) = ( $snmpkey =~ /(.*)\.(\d+)$/ ); $snmpresponse{$oid}{$key} = $serverresponse->{$snmpkey}; } #Die SNMP Response zuweisung geht auch folgede ausgabe bekomm ich für die Elemente von $snmpresponse{$oid}{$key} 1 4 1 Baseboard 1 CPU 0 Relative 33 1 20 -54 2 1 5 1 Front panel 36 1 1 1 1 usw. $state = 'OK'; #Jetzt sollte er eigentlich für jedes Element der OID SystemTempDescription die weiter oben definiert ist einmal durch die Schleife gehen... #Er kommt aber nie in die Schleife . Ich habe genau diesen Code bei einer Festplattenabfrage zum laufen gebracht. Die OID von SystemTempDescription stimmt. #Ich habe alle OIDs getestet und an denen kann es nicht liegen(Der Rückgabewert weiter oben stimmt ja auch) foreach my $key ( keys %{$snmpresponse{$SystemTempDescription}} ) { print "......................................."; if ( defined $value ) { if ( $snmpresponse{$SystemTempDescription}{$key} eq $value ) { my $TempSensor = $snmpresponse{$SystemTempDescription}{$key}; my $Temp_name = basename($TempSensor); my $Temperature = $snmpresponse{$SystemTempCurrentValue}{$key}; $answer = "Sensor: ".$Temp_name." Termp:".$Temperature; $perfdata = $Temp_name.$Temperature; $state = 'WARNING' if ( ( defined $warn ) && ( $Temperature >= $warn ) ); $state = 'CRITICAL' if ( ( defined $warn ) && ( $Temperature >= $crit ) ); last; } } else { my $TempSensor = $snmpresponse{$SystemTempDescription}{$key}; print $TempSensor; my $Temp_name = basename($TempSensor); print $TempSensor; my $Temperature = $snmpresponse{$SystemTempCurrentValue}{$key}; print $Temperature; $answer .= "Sensor: ".$Temp_name." Termp:".$Temperature; $perfdata .= $Temp_name.$Temperature; $state = 'WARNING' if ( ( defined $warn ) && ( $Temperature >= $warn ) && ( $state ne 'CRITICAL') ); $state = 'CRITICAL' if ( ( defined $warn ) && ( $Temperature >= $crit ) ); } }