> Ovid and I were getting fed up with the horrible DFA::Simple module, so > I wrote a new module, DFA::StateMachine, to take its place in our work. > But I'm no computer scientist, so I'm not even sure whether the name is > right or if the module functions the way a DFA state machine is > supposed to behave.
/pedant mode: The term "DFA::StateMachine" is like say "Car::Car". A DFA is by definition a state machine (it stands for "determinisitic finite state automata"). And after a review of the code IMO using the term DFA is a bad call. Normally "DFA" implies a specific type of implementation of a pattern matcher (as compared to say perls NFA [nondeterministic finite state automata] regex engine). While I can see the overlap that you are getting at here I think you will find less people review your work just because they think it must have to do with pattern matching and not to do with the generic construction of a rules processor. This is more of a turing machine than what is normally called a DFA. A term that you encounter in the literature for this type of construct is an FSA (finite state automaton/aka turing machine) which doesn't have such a strong association to pattern matching. Maybe: FSA::Rules is better? /end pedant mode Having said that it looks like an interesting module. Id be curious as to what you use it for tho. Yves