in reply to bit of help with map function

You could just use substr instead of the for loop or map. This produces identical output to your 'for' loop code:
my $input = ':xxx xxxxx = #xxx :xxx @rndletters @rndletters'; my @names = split //, substr $input, 7;