Beefy Boxes and Bandwidth Generously Provided by pair Networks RobOMonk
Syntactic Confectionery Delight
 
PerlMonks  

Re: Re: Comparing hashes without sorting the keys

by DrHyde (Prior)
on Feb 19, 2004 at 07:26 UTC ( [id://330200]=note: print w/replies, xml ) Need Help??

This is an archived low-energy page for bots and other anonmyous visitors. Please sign up if you are a human and want to interact.


in reply to Re: Comparing hashes without sorting the keys
in thread Comparing hashes without sorting the keys

You want it to return false when they match? Errm, why? Of course, if you really want to turn that around, I'd be happy to accept a patch, including documentation and tests, provided that it maintains backwards combatibility - so it has to be an option that the user explicitly turns on.
  • Comment on Re: Re: Comparing hashes without sorting the keys

Replies are listed 'Best First'.
Re: Re: Re: Comparing hashes without sorting the keys
by ysth (Canon) on Feb 19, 2004 at 09:44 UTC
    Just following the lead of things like cmp. Better yet, name the function to describe what it returns, e.g. "Differ" or "Match" (so
    if (Match($a,$b) or Differ($c,$d))
    does what it says.
Re: Re: Re: Comparing hashes without sorting the keys
by demerphq (Chancellor) on Feb 20, 2004 at 11:16 UTC

    You're the maintainer of Data::Compare? Interesting. Id very much like to chat with you about this module, specifically with regard to Data::Stream. I say this becuase I have considerable experience with this problem and actually wrote a considerable amount of unreleased code on the subject. I note that Data::Compare fails what I consider to be one of the nastiest test cases that exist in perl data structures. (Another test case is what I call the "dogpound" test originally posted by merlyn which afaik, only Data::Stream handles properly.) Don't feel bad, the only modules that don't fail this test are currently the (unreleased to cpan) Data::Stream and (the released to cpan) Data::BFDump (dont bother with the later, Data::Stream was specifically designed to replace Data::BFDump). Anyway, the test case is as follows:

    use Data::Compare; # this test is called "Scalar Cross" in both the Data::BFDump and Data +::Stream test sets my ($a,$x,$y)=([]); $x=\$y; $y=\$x; $a->[0]=\$a->[1]; $a->[1]=\$a->[0]; print Compare([$x,$y],$a); # infinte loop

    My email is on my homenode, id love to correspond with you about this subject if you're interested.


    cheers
    ---
    demerphq

      First they ignore you, then they laugh at you, then they fight you, then you win.
      -- Gandhi


      Mmmm, tasty bug reports!

      update: fixed in 0.09, will upload to CPAN shortly

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://330200]
help
Sections?
Information?
Find Nodes?
Leftovers?
    Notices?
    hippoepoptai's answer Re: how do I set a cookie and redirect was blessed by hippo!
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.