in reply to Is X in my array?

If your data will work like this (there's no foo vs. food problems), it's actually almost twice as fast as grep.
#!/usr/bin/perl -w use strict; use vars qw(@array); @array = qw(a b c d e f g h i j k l m n o p q r s t u v w x y z); use vars qw($test); if ($ARGV[0] eq "1") { $test = sub { print "Found!\n" if index("@array", $_[0]) > 1; } } elsif ($ARGV[0] eq "2") { $test = sub { print "Found!\n" if grep { $_ eq $_[0] } @array; } } else { die "Usage: $0 1|2\n"; } for(my $i=0;$i<1_000_000;$i++) { &$test(chr(ord('m') + ($i % 26))); }
$ time perl ~/tmp/t5 1 |wc -l
 538468

real	0m13.711s
user	0m12.000s
sys	0m0.020s
$ time perl ~/tmp/t5 2 |wc -l
 538468

real	0m19.380s
user	0m19.330s
sys	0m0.050s