http://www.perlmonks.org?node_id=128941


in reply to Query a MAC address

If you have a question, please post it to Seekers of Perl Wisdom along with a better description of the problem.

I notice your code has a lot of repetition. Generally, whenever I see repetition in code, that tells me I can probably reduce some of it to a function or iteration:

my %check_oids = ( sysUpTime => '1.3.6.1.2.1.1.3.0', sysDescr => '1.3.6.1.2.1.1.1.0', sysObjectID => '1.3.6.1.2.1.1.2.0', sysContact => '1.3.6.1.2.1.1.4.0', sysName => '1.3.6.1.2.1.1.5.0', sysLocation => '1.3.6.1.2.1.1.6.0', sysServices => '1.3.6.1.2.1.1.7.0', ); foreach (keys %check_oids) { my $result = $session->get_request( -varbindlist => [$check_oids{$_}] ); if (!defined($result)) { printf("ERROR: %s.\n", $session->error); $session->close; exit 1; } printf("%s for host '%s' is %s\n", $_, $session->hostname, $result->{$check_oids{$_}} ); }