in reply to Retrieve value with key warns 'unitialized value' although present

Whitespace! Your keys all have an extra space at the end, since you split on /=/. To fix, change your split to /\s*=\s*/. As a tip, when printing debug statements, use obvious delimiters to catch this kind of error. For example:

while ( (my $key, my $value) = each %config ) { print "!$key! => ($value)\n"; }

print map{substr'hark, suPerJacent other l',$_,1}(11,7,6,16,5,1,15,18..23,8..10,24,17,0,12,13,3,14,2,4);