Thanks very much for all your comments so far. With that in mind, I changed some of my code as follows
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";
}
}
And now it runs in seconds. I'm no longer looping over %dom_hash, I'm simply using it as a look up table.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|