in reply to Difficulty in randomization

Here's a solution using an array slice.

#!/usr/bin/env perl use 5.010; use strict; use warnings; use List::Util qw{shuffle}; my $array_elements = 60; # originally 600 my $random_elements = 3; # originally 10 my $no_of_arrays = 10; # originally 1000 my $norm_char = q{-}; my $rand_char = q{X}; my @all_strings = (); for (1 .. $no_of_arrays) { my @tmp_array = ($norm_char) x $array_elements; @tmp_array[(shuffle 0 .. $array_elements - 1)[0 .. $random_element +s - 1]] = ($rand_char) x $random_elements; push @all_strings => join q{} => @tmp_array; } map { say } @all_strings;

-- Ken