Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw


by Anonymous Monk
on Aug 28, 2002 at 00:24 UTC ( #193318=perlquestion: print w/replies, xml ) Need Help??
Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

Im trying to find a deepequals function/method, something like
$b = dclone($a);
if (deepequals($a,$b) {
   print " $a $b are equal, one is a clone of the other\n";
is there such a beast on CPAN that I missed ?

Replies are listed 'Best First'.
•Re: deepequals
by merlyn (Sage) on Aug 28, 2002 at 00:31 UTC
Re: deepequals
by sauoq (Abbot) on Aug 28, 2002 at 00:44 UTC

    Storable provides that through the $Storable::cannonical variable. Quoting from the documentation:

    Normally, Storable stores elements of hashes in the order they are stored internally by Perl, i.e. pseudo-randomly. If you set $Storable::canonical to some TRUE value, Storable will store hashes with the elements sorted by their key. This allows you to compare data structures by comparing their frozen representations (or even the compressed frozen representations), which can be useful for creating lookup tables for complicated queries.
    "My two cents aren't worth a dime.";
Re: deepequals
by rinceWind (Monsignor) on Aug 28, 2002 at 09:46 UTC
    I did ask something similar before in Need a test for deep equality. I know that storable and Data::Dumper have been revamped in the mean time, but please look at my conclusions in that thread.

    Super Search is your friend.


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://193318]
Approved by myocom
[Corion]: Meh. My bank removed (part of) their CSV download facilities. Now I will either have to implement a full scraper or automate the download using the HBCI interface instead (or just get a new account elsewhere...)
[Corion]: On the upside, I spend a lot of time thinking this weekend about how to actually implement rate limiting for futures, and if things work out, maybe even loading a configuration from an external file makes sense
[Corion]: I've also found some interesting invariants that I have to think/write about more. A simple rate limiter will never change the order of the input, while a limiter that allows for parallel execution will change the order. But my API currently allows for bo
[Corion]: ... for both, and I'm not sure if I want to add the cruft from the parallel API (a token that you need to hold on to while you hold the lock) to the rate limiting API too, to allow seamless up/downgrades, or not.

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (9)
As of 2017-10-23 08:21 GMT
Find Nodes?
    Voting Booth?
    My fridge is mostly full of:

    Results (277 votes). Check out past polls.