in reply to generating a character sequence

when
printf"%s\n",pack"C*",map{ord'a'+$_%26}0..$n-1; # not ok
then $_ is ord'a' and not one of the intended values of 0..(25..28)-1

Have a nice day
All decision is left to your taste