This script I wrote to make two hashes and then search one hash with the keys from the other is only returning the correct result for the last key in the hash being searched. Additionally, it is taking a long time to run. I have reached the limits of my ability in trying to troubleshoot this. Any wisdom received from you will be much appreciated.
#!/usr/bin/perl -w #GIDgiver.pl #this script reads gene symbols and assigns the matching Entrez GeneID + to each gene use strict; open FH1, 'GID_GeneSymbol.txt', or die "Can't open GID file\n"; open FH2, 'CVD_genelist.txt', or die "Can't open CVD gene list\n"; our (@list1, @list2, @temp); my %GID = (); my %CVDgenes = (); while (<FH1>){ chomp; push (@list1, $_); foreach (@list1){ @temp=split(/\s+/, $_); } %GID = map { $temp[0] => $temp[1] } @temp; } while (<FH2>){ chomp; push (@list2, $_); } %CVDgenes = map { $_ => 1 } @list2; while ((my $k, my $v) = each(%GID)) { if (exists ($CVDgenes{$v})){ print "The GID for gene $v is $k\n"; }}
In reply to hash lookup by dr_joe
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |