use strict; my $some_word = 'race'; my @letters = split //, $some_word; my (@array1, @array2); # Added this to show that the same $letter_ref is pushed into @array2 my $letters_ref = \@letters; for (1..@letters) { my @new = @letters; push (@array1, \@new); push (@array2, $letters_ref); my $myshift = shift @letters; push(@letters, $myshift); }