Listing 4

use SNMP ; $SNMP::use_sprint_value = 1; my $community = "public" ; # open SNMP session $sess = new SNMP::Session( DestHost => $hostname, Community => $community); # get complete MIB view my %MIBS ; $var = new SNMP::Varbind([]); do { $val = $sess->getnext($var); $MIB{$var->[$SNMP::Varbind::tag_f].\ $var->[$SNMP::Varbind::iid_f]} = $var->[$SNMP::Varbind::val_f]; } until ($sess->{ErrorStr}); my @tags = sort keys %MIB ; foreach $tag ( @tags ){ #searching tags if ( $tag =~ /33\.1\.2\.1\.0/ ) { # battery status $upsatteryStatus = $MIB{$tag} ; } elsif ( $tag =~ /33\.1\.2\.3\.0/ ) { # battery minutes remaining $upsEstimatedMinutesRemainin = $MIB{$tag}; ..... ... . }