SS line a line a line a line a SS line b line b line b line b line b line b SS line c line c line c ... #### file 1 SS line a line a file 2 line a line a #### open (FILE); my $data = 0; my $partnumber = 5; # changes constantly while(){$data++ if ($_ =~ /^SS/)} # to get the number of objects in a file close FILE; my $chunk =($data + $partnumber)/$partnumber ; # to ensure ther are no remainders my $index = 1; open(FILE$index); open (FILE); my $i = 0; while(){ if (m/^SS/){ $i++; if ($i >= $chunk){ $i = 0; close FILE$index; $index++; open (FILE$index); } } print FILE$index "$_"; } close FILE & FILE$index; #### open (FILE); my $data = 0; my $partnumber = 5; # changes constantly while(){$data++ if ($_ =~ /^SS/)} # to get the number of objects in a file close FILE; my $chunk = $data/$partnumber; my $remainder = $data%$partnumber ; my $index = 1; open(FILE$index); open (FILE); my $i = 0; my $remain = 1; while(){ if (m/^SS/){ $i++; $chunk +=1 if ( $remain < $remainder); if ($i >= $chunk){ $i = 0; $remain++; close FILE$index; $index++; open (FILE$index); } } print FILE$index "$_"; } close FILE & FILE$index; #### chunk = (total + # of chunks)/ # of chunks and remainder = total % # of chunks chunk = total / # of chunk foreach (chunk #){ if (remainder < # of chunks){ add one to ensure that all data is divided between files } }