Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re: Compare all array values without a loop

by fergal (Chaplain)
on Oct 19, 2004 at 14:28 UTC ( [id://400542]=note: print w/replies, xml ) Need Help??


in reply to Compare all array values without a loop

If you're basically looking for a quick Set membership test then using a hash rather than an array coould help.
my %hash = ('a' => undef, 'b' => undef, 'c' => undef, 'd' => undef); if (exists $hash{'a'}) { # yadda yadda }
Setting up the hash can be made a bit neater once you know what a hash slice is
my %hash; @hash{'a', 'b', 'c', 'd'} = ();
If your set of elements is going to be large and you're going to be checking frequently then a hash will be much quicker than anything that searches an array. Inserting and removing elements is also quick and doesn't have a problem with duplicates like an array could.

You could also do a cpan search for "set" and use one of the modules there, some of them would be even faster and than hashes I think.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others imbibing at the Monastery: (4)
As of 2024-03-19 09:31 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found