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


in reply to Re: Replacing namespaces
in thread Replacing namespaces

I concur; this is a very elegant solution, kind of like a dynamic dispatcher.

Expanding upon the concept of making sure the reblessings are in a known tree, what you are describing appears to be a Finite State Machine.

Given a current state (class A) and event (X fails), a new state (class B) is chosen; or, alternatively for a different event (Y fails), a different new state (class C) is selected.

Construct a table with all possible states down the Y-axis and events across the X-axis, thus documenting the permitted state transitions. Here a dash (-) represents illegal states (i.e., should not happen, is an error if it does):

state | event X | event Y | event Z -------+-----------+-----------+----------- A | B | C | E -------+-----------+-----------+----------- B | D | - | E -------+-----------+-----------+----------- C | E | - | - -------+-----------+-----------+----------- | | | ... etc. | | | -------+-----------+-----------+----------- E | - | - | B -------+-----------+-----------+-----------

There are probably other ways to track a complex transition graph, but I've gotten great use out of this qapproach.

dmm

You can give a man a fish and feed him for a day ...
Or, you can
teach him to fish and feed him for a lifetime