my @first = ((1..200), qw(a b c d e f)) ; my @second= ((1..200), qw(b a c d e f)) ; Benchmark: timing 2000 iterations of DComp, faq, grep... DComp: 12 wallclock secs (11.52 usr + 0.00 sys = 11.52 CPU) faq: 2 wallclock secs ( 1.48 usr + 0.00 sys = 1.48 CPU) grep: 1 wallclock secs ( 1.35 usr + 0.00 sys = 1.35 CPU)