Module::Pluggable does an entirely different job to Class::Load - it searches for (and optionally requires and instantiates) modules with names matching a particular pattern.
Module::Load does something similar to Class::Load but has less functionality. Class::Load not only provides load_class (equivalent to Module::Load's load function), but also try_load_class and is_class_loaded, load_first_existing_class and load_optional_class which can be pretty handy at times.
(The difference between try_load_class and load_optional_class is subtle. Both will check whether the class exists, attempt to load it, and return a boolean indicating successfulness. The difference is in how they handle the situation where the module exists, but cannot be loaded - e.g. due to syntax errors - the former just returns false; the latter croaks.)
|