Modules should accept one parameter, the name of the directory which has library.pm in it This is generally the current directory. Thus, to call the module linux_networking, you should say ./linux_networking . or, if you're in a different directory and the modules are in /opt/camp/sysinfo-client/modules /opt/camp/sysinfo-client/modules/linux_networking /opt/camp/sysinfo-client/modules Modules will only be executed if: They are owned by root Their execution bit is set for root and all others are set to 0, ie 0700 The file name begins with an alpha-numeric, and contains only alpha-numerics and underscores. Case does not matter Each module should test to determine if it can be executed. For example, a module using ipmitool should test for its existence and simply return nothing if it does not. In other words, no STDERR.