It creates bunches of n size randomly
from a list of values supplied.
Example:-----------
List: 1,2,3,4,5,6,7,8,9,10,11
Bunch Size: 2
Result:
Bunch# 1: 7 2
Bunch# 2: 3 9
Bunch# 3: 4 11
Bunch# 4: 6 5
Bunch# 5: 8 1
Bunch# 6: 10
use strict;
my @main_arr = (1,2,3,4,5,6,7,8,9,10,11);
my $bunch_size = 2;
my @bunch_arr = &randomBunch(@main_arr,$bunch_size);
my $bunch_cnt = 0;
foreach ( @bunch_arr) {
$bunch_cnt++;
print "Bunch# $bunch_cnt: ";
foreach (@{$_}) {
print "$_ ";
}
print "
";
}
sub randomBunch {
my ($arr_ref,$bunch_size) = @_;
my @arr = @$arr_ref;
my ($index,$element);
my @ret_arr;
my $num_bunch = int( ($#arr+1) / $bunch_size ) + 1;
for (1 .. ($#arr+1) ) {
my @bunch_arr = ();
for (1 .. $bunch_size) {
if ($#arr + 1 > 0) {
$index = int(rand @arr);
push @bunch_arr,"${arr[$index]}";
splice(@arr, $index, 1); ##delete it from main arr
}
}
push @ret_arr,@bunch_arr;
if ( $#arr < 0 ) {
last;
}
}
return @ret_arr;
}

