# global config: my @interface_names_oid = ( '1.3.6.1.2.1.2.2.1.2' ); my $interface_oid_prefix = '1.3.6.1.2.1.2.2.1.6'; sub snmp_get($;$) { my( $snmp_sess, $device ) = @_; $device ||= 'eth0'; # default my $interfaces_table = $snmp_sess->get_entries( -columns => \@interface_names_oid ) or die $snmp_sess->error; $snmp_sess->get_request( -varbindlist => [ map { join '.', $interface_oid_prefix, /\.(\d+)$/; } grep { $interfaces_table->{$_} =~ /$device/ } keys %$interfaces_table ] ) }