Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

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

by Fastolfe (Vicar)
on Oct 03, 2000 at 21:51 UTC ( [id://35154]=note: print w/replies, xml ) Need Help??


in reply to set theory w/hashes? arrays? done quickly?

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?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://35154]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having an uproarious good time at the Monastery: (4)
As of 2024-04-23 23:36 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found