Algorithm::Loops was just what I needed. A few minor changes to the structure of @keylmt and one dynamically defined function template for the iteration test routine and I am off and running. Thanks.
Maddeningly ironic that in the dozen or so searches and subsearches I ran yesterday, I never thought to use the word, loop. Keys, iterators, for next and so on but not loop. Ah well...