Dcmd and Walker Name Resolution
As described earlier, each MDB dmod provides a set of dcmds and
walkers. Dcmds and walkers are tracked in two distinct, global namespaces. MDB also keeps
track of a dcmd and walker namespace associated with each dmod. Identically named
dcmds or walkers within a given dmod are not allowed. A dmod
with this type of naming conflict will fail to load.
Name conflicts between dcmds or walkers from different dmods are allowed in the
global namespace. In the case of a conflict, the first dcmd
or walker with that particular name to be loaded is given precedence in
the global namespace. Alternate definitions are kept in a list in load order.
Use the backquote character (`) in a dcmd or walker name as a
scoping operator to select an alternate definition. For example, if dmods m1 and
m2 each provide a dcmd d, and m1 is loaded prior to m2,
then you can use the scoping operator as shown below to specify the
dcmd you want:
- ::d
Executes m1's definition of d
- ::m1`d
Executes m1's definition of d
- ::m2`d
Executes m2's definition of d
If module m1 is unloaded, the next dcmd on the global definition
list (m2`d) is promoted to global visibility. Use the ::which dcmd to determine
the current definition of a dcmd or walker. Use the ::which -v
dcmd to display the global definition list.