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

suba has asked for the wisdom of the Perl Monks concerning the following question:

Update

Sorry, this was my mistake. The error did not come from the script, but another module that already tried to load the same mibs before the addMibDirs in the main script. Don't ask why... After removing the other LoadModule everything works.

Does anyone use the SNMP module? (not Net::SNMP)?

I have the following code:

&SNMP::addMibDirs("FULL_PATH/mibs"); &SNMP::loadModules("IRONPORT-SMI","ASYNCOS-MAIL-MIB");

Script is located in FULL_PATH.

If my CWD is FULL_PATH everything is great. Otherwise I get:

Cannot find module (IRONPORT-SMI): At line 0 in (none) Cannot find module (ASYNCOS-MAIL-MIB): At line 0 in (none)

I did an strace and see (shortened the output a bit):

stat64("./mibs/.index" ... -1 ENOENT open("./mibs" ... = -1 ENOENT write(2, "Cannot find module (IRONPORT-SMI"... write(2, "Cannot find module (ASYNCOS-MAIL"...
a bit later...
stat64("FULL_PATH/mibs/.index" ... = 0 stat64("FULL_PATH/mibs" ... = 0 open("FULL_PATH/mibs/.index" ... = 3
and continues to open and read the necessary MIB-Files. Even stranger: I use all OIDs by Name, not numbers some work some lead to "Unknown Object Identifier".

I could just drop the needed MIBs in the default directories, but this does bug me a bit. What am I doing wrong?