use strict; use warnings; use 5.010; my $len = 4; my $string = "01234abc"; for (0 .. (length $string - $len) ) { say substr $string, $_, $len; } # or in an array my @chunks = map {substr $string, $_, $len} (0 .. (length $string - $len) ); say join "<>", @chunks;