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; }