my %chunkmap = map { $_ => pack "b*", @charmap{split //,$_} } map { glob } map { ("{A,C,G,T}" x $_) . ("A"x(4-$_)) } 1..4; $string =~ s/(.{1,4})/$chunkmap{$1}/g;