I take it this is bowtie output? It makes no sense to me why you are comparing all IDs in the first file to all IDs in the second? The whole point of using a hash is that you can look up specific keys, whereas an array would be for storing an ordered list.
What are you actually trying to do? Get the common IDs between the files and say whether their associated sequences match? You can try something like this for that :
foreach my $id (keys %hash1){ # you can use (sort keys %hash1) if you
+want them in a specified order
if ( exists $hash2{$id} ){
print "\'$id\' exists in both hashes.\n";
if ( $hash1{$id} eq $hash2{$id} ){
## id and sequence are stored as key value pairs
print "and the sequences match too.\n";
}
else{
print "but the sequences do not match.\n";
}
}
else {
print "\'$id\' only exists in hash1.\n";
}
}
If you want help with data strucutes, try perldsc for starters.
Just a something something...
-
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.
|