Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

Answer: set theory w/hashes? arrays? done quickly?

by Fastolfe (Vicar)
on Oct 03, 2000 at 21:51 UTC ( #35154=categorized answer: print w/replies, xml ) Need Help??

Q&A > Data Structures > set theory w/hashes? arrays? done quickly? - Answer contributed by Fastolfe

The Perl Cookbook has some excellent things to say on this topic, specifically in and about recipes 4.6 and 4.7. Hashes should be treated as an array of its keys when doing comparisons like this.

In addition, see the Set::Scalar module, which is specifically designed to do manipulations and tests with sets. In a pinch, though, some code like this might help you (taken directly from the cookbook):

foreach $e (@a, @b) { $union{$e}++ && $isect{$e}++ } @union = keys %union; @isect = keys %isect;
If you need the difference:
@diff = (); foreach $e (keys %union) { push(@diff, $e) unless $isect{$e}; }
Set::Scalar makes this much more straightforward:
$s = new Set::Scalar (keys %hash1); $t = new Set::Scalar (keys %hash2); @isect = $s->intersection($t)->members;

Log In?

What's my password?
Create A New User
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (4)
As of 2020-10-26 02:20 GMT
Find Nodes?
    Voting Booth?
    My favourite web site is:

    Results (249 votes). Check out past polls.