in reply to Re^3: Re-exporting dynamically-included variables
in thread Re-exporting dynamically-included variables

Changing the eval 'require ' . config_module; to eval 'use ' . config_module . ' qw( %conf )'; certainly simplified things considerably. I ran into a situation earlier on where I was only able to get require to work, not use, but it apparently no longer applies. Thanks for the nudge towards switching back to use!

After trying that, I was still seeing the same failure mode, so I started working on a minimal failing case that I could post in full instead of just the excerpts previously posted and, of course, it turned out that the real issue was in some of the "irrelevant" code I'd left out... There was another module which used %conf and its require/use was being evaled before the config module. Which explains why it was getting a different %conf than the code which was loading after the config module.

Proof once again of the value in creating a minimal failing case...