And now it runs in seconds. I'm no longer looping over %dom_hash, I'm simply using it as a look up table.foreach my $key (sort keys %csa_hash) { #print "$key\n"; # ok we now need to split up the key in the hash my $pdb = substr($key, 0, 4); my $chain = substr($key, 5, 1); my $res = substr($key, 7, 6); #print "$pdb $chain $res\n"; # works great. using substring as I d +ont really want to create an array my $pdbchain = "$pdb" . "$chain"; # concatenate together so to com +pare with domain data # print "$pdbchain\n"; # works fine # lets be on the safe side and remove white space # for domchain and pdbchain $res =~ s/\s//g; #$domchain =~ s/\s//g; $pdbchain =~ s/\s//g; #chomp($domchain); chomp($pdbchain); if($dom_hash{$pdbchain}{$res}) { print "$pdbchain $res\n"; } }
In reply to Re: Why is my program so slow even though I've used hashes?
by Angharad
in thread Why is my program so slow even though I've used hashes?
by Angharad
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |