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.