Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re: Compare Hashes and Arrays

by Skeeve (Vicar)
on Dec 16, 2009 at 13:08 UTC ( #813012=note: print w/replies, xml ) Need Help??


in reply to Compare Hashes and Arrays

Provided that either the array's values are unique or provided that you don't care for the number of occurences, you could use the array's values as hash keys. You can either compare the hashes, as you already are able to, or you can try this:

my @base= qw/b c d e/; my @dist= qw/w x y z/; my @id = @base; my @more= qw/a b c d e/; my @less= qw/b c d/; my @intr= qw/a b c d/; print compare(\@base, \@dist); print compare(\@base, \@id ); print compare(\@base, \@more); print compare(\@base, \@less); print compare(\@base, \@intr); sub compare { my($b, $c)= @_; my %a; @a{@$b}= (); my $n= scalar %a; @a{@$c}= (); return "differ\n" if $n ne scalar %a; delete @a{@$c}; return "differ\n" if scalar %a; return "identical\n"; }


s$$([},&%#}/&/]+}%&{})*;#$&&s&&$^X.($'^"%]=\&(|?*{%
+.+=%;.#_}\&"^"-+%*).}%:##%}={~=~:.")&e&&s""`$''`"e

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://813012]
help
Chatterbox?
erix .oO( that sounds Boyer-Mooreish )
[Corion]: erix: Yes, but that's mostly for skipping characters you'll never read, but this approach skips the problem of needing to load more data while looking at a half-match
[Corion]: I mostly wonder how I can add this "reversal" to my toolchest, and if it's worth it or just clever
[choroba]: It should greatly simplify the parsing code, no flags or additional reading of the next buffer needed

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (13)
As of 2016-12-06 15:34 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    On a regular basis, I'm most likely to spy upon:













    Results (109 votes). Check out past polls.