using variable contents for variable names is generally frowned upon, with good reason. using multi variable contents to construct a variable name probably not a good idea either.
A HoHoH structure should suffice, or you could write more general code that could go to any depth by writing the appropriate getter/setter functions to use in the rest of your code.
maybe the problem can be solved in a different way, which would simplify the inner workings...but there's not enough detail here to make any recommendations in that respect.
the hardest line to type correctly is: stty erase ^H