use strict; use warnings; use Data::Dumper; my $size = 2; my $string='aabbccddee'; my $template = "a$size" x (length($string)/$size); if (length($string) % $size){ $template .= "a" . (length($string) % $size); } print "Unpack Template: $template \n\n"; my @parts = unpack($template, $string); print Dumper(\@parts); #### Unpack Template: a2a2a2a2a2 $VAR1 = [ 'aa', 'bb', 'cc', 'dd', 'ee' ];