my $count = 0; 44 my $priorScaffold; 45 my $priorChr; 46 my @finalArray; 47 open (IN, '<', $fileName) or die "Cannot open $fileName\n"; 48 LINE: while (my $line = ){ 49 chomp $line; 50 if ($line =~ m/^>\w+/){ 51 next LINE; 52 } 53 my @dataLine = split /\t/, $line; 54 my $chr = $dataLine[5]; 55 next LINE if ($chr !~ /^\d{1,2}?$/); 56 my $scaffold = $dataLine[0]; 57 if ($count != 0){ 58 if ($scaffold ne $priorScaffold){ #If we found a new scaffoldd 59 push @{$global{$priorChr}{$priorScaffold}}, @finalArray; #write to hash @finalArray using prior accumulated data for last scaffold 60 $count = 0 ; 61 $allScaffolds{$priorScaffold}=0; #Save priorScaffold in allScaffolds Hash for list use later- value is meaningless 62 @finalArray = (); 63 } 64 elsif ($chr != $priorChr){ #If we just switched Chromosomes but are still on the same scaffold 65 push @{$global{$priorChr}{$priorScaffold}}, @finalArray; #write to global the @finalArray accumulated to the point it switches chromosomes 66 $count = 0; 67 @finalArray = (); 68 } 69 } 70 push @{$finalArray[$count]}, @dataLine; 71 $priorScaffold = $scaffold; 72 $priorChr = $chr; 73 $count ++; 74 print "$line\n"; 75 print join ("\t", @dataLine)."\n"; 76 }