my $text = "0 X X X ..."; my @items = split(' ', $text); my @array; while (@items) { push(@array, [ splice(@items, 0, 8) ]); } pp \@array; use Data::Dumper;