in reply to hash lookup
To elaborate on what moritz hinted at with respect to @list1: for every iteration (i.e. line in the file), the list gets longer, but you're only ever making effective use of the last entry anyway in what you do with the list:
foreach (@list1){ @temp=split(/\s+/, $_); }
would leave in @temp only the result of splitting the last entry of @list1. This creates unnecessary work which is only making your program slow...
Here's a simplified version (if I understood correctly what you're trying to do):
# create lookup table while (<FH2>) { chomp; $CVDgenes{$_} = 1; } # go through the other file and check if its entries # are found in the lookup table: while (<FH1>){ chomp; my ($gene, $gid) = split(/\s+/, $_); if (exists $CVDgenes{$gene}) { print "The GID for gene $gene is $gid\n"; } }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: hash lookup
by Anonymous Monk on Oct 12, 2009 at 22:45 UTC | |
by dr_joe (Initiate) on Oct 12, 2009 at 22:47 UTC |