#!/usr/bin/env perl use strict; use warnings; my @a; my $n = "\n"; @a = glob("*.Recip.blast.top"); my $t = "\t"; foreach my $a (@a){ # print $a."\n"; my @b = split(/[.]/,$a); #print @b.$n; #print $b[0].$n.$b[1].$n.$b[2].$n.$b[3].$n.$b[4].$n.$b[5].$n.$b[6].$n.$b[7]; my $OrginalBlast; $OrginalBlast = $b[0].".".$b[1].".".$b[2].".".$b[3].".".$b[4].".".$b[5].".".$b[6].".".$b[7]; # print $OrginalBlast; # print $n; #####ORGN is = AB||||||| open(ORGN,"/home/ajl12013/Labwork/Dbfiles/results/$OrginalBlast") || die; ######RECI is = BA||||||| open(RECI,$a) || die; open(OUTM,">MatchingGI.txt" ) || die; open(OUTNoM,">NoMatchingGI.txt") || die; my $ORGN = ; #The scalar format works here, but for some reason, the doesnt print, this makes debugging the whole process very difficult and tedious. my $RECI = ; #print ; #print "##############################################################################################"; #print $RECI; #print ; my %GenomeTable; my $Genome1A ; my $G1A; my $data; my $G2A; my $Genome2A; my $l; local $/; my $key; $GenomeTable{$OrginalBlast} = $a ; #print keys %GenomeTable; #print $n; #print values %GenomeTable; #print $n; #### First while statement for the AB file. $GenomeTable{$n} = $n; while(my $G1A = ){ # my @G1A = $G1A =~ m/^[gi]\d[|]$/g; #print $G1A; #print $G1A[0]; #foreach my $q (@G1A){ # print $q #chomp($G1A); if ($G1A =~ m/^[gi|]\w/){ ($Genome1A) = $G1A =~ m/^gi\|\d+/g; $GenomeTable{$Genome1A} = []; $GenomeTable{$n}; #print "These are the keys: "; #print keys %GenomeTable ; #print $n; #my $GenomeAB_ref; #$GenomeAB_ref->$GenomeTable{$Genome1A}; #print $GenomeAB_ref; foreach my $keys (keys %GenomeTable){ print " Keys: $keys $n";} } while($G2A = $RECI ){ #print $G2A; #chomp($G2A); if($G2A =~ m/^[gi|]/){ # print "Here"; $G2A =~ m/^gi\|\w+\|\w+\|\w+\.\d\|\w+\s(gi\|\d+)/g; $Genome2A = $1; # ($l) = $G2A =~ m/^gi\|\d+/g; #$G2A =~ m/^gi\|\w+\|\w+\|\w+\.\d\|\w+\s(gi\|\d+)/g; #print $l; #$Genome2A = $1; #print $Genome2A; $GenomeTable{$Genome1A} = $Genome2A; #print "These are the valuesi: "; #print values %GenomeTable ; #print $n; foreach my $values (values %GenomeTable){print "Values: $values $n";} $Genome1A eq $Genome2A ? print OUTM $a.$n : print OUTNoM $a.$n; #exit; } #exit; } #exit; } }