in reply to "do" what?

So, why does strict require the "my %config", but not populate it on "doing the do".

Because your %config and the one in the file you are do'ing are different. Your %config shadows the one in the file. You'll need to declare it as a global.

use vars qw( %config );

If you are using 5.6 or greater, you can write that as our %config; instead.

-sauoq
"My two cents aren't worth a dime.";