First run #!/usr/bin/perl use SNMP::MIB::Compiler; $raw = '/var/tmp/mibs_files'; $proc = '/var/tmp/mib_compiler'; $mib = SNMP::MIB::Compiler->new( someargs => '', ); $mib{ 'repository' => "$proc", 'use_v1' => '0', 'use_v2' => '1', }; open(DIR,"$raw") || die "cant access dir $raw\nReason: $!\n"; for ( grep(!/^\./, readdir(DIR)) ) { $mib->compile("$_"); } closedir(DIR); ## Second run use SNMP::MIB::Compiler; $data = '/var/tmp/mib_compiler'; $mib = SNMP::MIB::Compiler->new( 'args' => 'blah', ); $mib{ repository = "$data", }; for ( @oids_to_resolve ) { # I think this converts numeric to text $name = $mib->convert($_); # whereas this will convert a string to numeric oid.. $oid = $mib->resolve_oid($_); }