use strict; use warnings; my $string = "BEHACJBDLCENADFEGOFHQAGIHJRBIKJLSCKMLNTDMOFNPOQTGPRIQSKRTMPS"; my @result = ( [ 0, 0, 0, 0, ], # map [ 0, map $_ -= 64, unpack 'C*', $_ ], # -= is pointless map [ 0, map $_ - 64, unpack 'C*', $_ ], unpack '(a3)*', $string ); # Print the results for my $i (1..20) { for my $j (1..3) { print sprintf("%02d", $result[$i][$j]) . " "; } print "\n"; }