Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister

Re:{3} How to test equality of hashes?

by jeroenes (Priest)
on Jun 20, 2001 at 18:26 UTC ( #90004=note: print w/replies, xml ) Need Help??

in reply to Re: Re: How to test equality of hashes?
in thread How to test equality of hashes?

Nice. I can't see this kind of follow-ups often enough!

A few comments, naturally:

  1. use strict warnings and diagnostics or die. These are your friends on the long run.
  2. You declare 2 vars without need:
    my %h1 = %{ $_[0] }; #h2 similar
  3. Check whether your refs are defined:
    my %h1 = (defined $_[0] and ref $_[0]) ? %{ $_[0] } : ();
    This will make the code more portable/general/cleaner. You may add an extra check for hashiness.
  4. I just realized that this code can't distinguish between undefined or empty, so the grep becomes:
    scalar grep { my ($a, $b) = ( $h1{$_}, $h2{$_} ); ( not defined $a and defined $b ) or ( not defined $b and defined $a ) or $a ne $b } @k1
    Had to think extra carefully there!

Hope this helps,


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://90004]
choroba vaguely remembers seeing pairsite as a result of searching for something, but he doesn't remember what engine or site used it.

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (6)
As of 2017-09-26 08:29 GMT
Find Nodes?
    Voting Booth?
    During the recent solar eclipse, I:

    Results (293 votes). Check out past polls.