use strict; use warnings; use Data::Dumper; my @letter_array = (); my @letters = ('A' .. 'Z'); foreach my $letter (@letters) { my $selection = int rand 4; push @{$letter_array[$selection]}, $letter; } print Dumper(\@letter_array); #### $VAR1 = [ [ 'F', 'K', 'O', 'T', 'U', 'V', 'X' ], [ 'B', 'I', 'Q', 'W' ], [ 'A', 'D', 'E', 'H', 'J', 'L', 'M', 'P', 'S', 'Z' ], [ 'C', 'G', 'N', 'R', 'Y' ] ];