Actually, to clarify -- your suggestion of using ${path} works fine when applied to my original script which allows the multi-level hierarchies I need.
However, it is not obvious (to me) how to make this work in your non-eval script. If I use ${path}, I get all sorts of errors.
Unfortunately, the exercise you leave to the reader is actually the exercise that was the point of my original question :) (though I quite appreciate your provided script).