#!/usr/bin/perl -w use strict; use vars qw ($line $list $flag); $flag = 0; # modules # use diagnostics; # debug use Data::Dumper; # debug use MIME::Lite; # open address file, read in address file, convert to useful form for email: open FIN," ) ) { chomp $line; if ($flag == 0) { $list = $line; $flag = 1; } else { $list .= ",$line"; } } close (FIN); # now we have all the names, comma-separated, in $list # group into sets of five my $i=0; # counter my $j=0; # key for %HoA my @wholelist; my $individual; my @fives; my $fives; my %HoA; my $HoA; @wholelist = split/,/,$list; shuffle(\@wholelist); # sub to randomize before grouping for $individual(@wholelist) { push @fives, $individual; if (defined ($fives[4]) ) { push(@{$HoA{$j}}, @fives); undef(@fives); $i = 0; $j++; # reset $i; ++ j to have next @fives go into a new key } else { $i++; } } print "\n\nDumping \%HoA:\n"; # debug print Dumper(%HoA); # debug $j=0; #reusing key for ($j=0; $j<4; $j++) { #20 emails in wholelist, so 0..3 keys in %HoA