http://www.perlmonks.org?node_id=813012


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