Unfortunately, when you evaluate a hash in a scalar context it returns a fraction representing the hash table bucket usage, which is rarely what anyone is interested in. It doesn't even return the number of elements.
If you want to compare the contents of two hashes, you'll have to look at the keys and values of both. One way to compare them:
my @k1 = keys(%hash1);
my @k2 = keys(%hash2);
# do they have the same number of elements?
if (@k1 != @k2) { # they're different...
}
# are the keys the same?
if (join($; , sort(@k1))
ne join($; , sort(@k2))) { #they're different
}
# are the values the same?
if (join($; , @hash1{@k1})
ne join($; , @hash2{@k1})) { #they're different
}
All of this assumes that neither your keys nor values contain the $; character (by default \034)
-
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.
|