timethese $iters, { 'eq !=' => sub { return $vartocheck eq lc($firstchar) }, 're !=' => sub { return $vartocheck =~ /^\Q$firstchar\E$/i }, }; __END__ % perl eqre 10000000 Benchmark: timing 10000000 iterations of eq !=, re !=... eq !=: 7 wallclock secs ( 7.42 usr + 0.00 sys = 7.42 CPU) @ 1347708.89/s (n=10000000) re !=: 26 wallclock secs (25.89 usr + 0.01 sys = 25.90 CPU) @ 386100.39/s (n=10000000) Benchmark: timing 10000000 iterations of eq ==, re ==... eq ==: 8 wallclock secs ( 6.60 usr + 0.00 sys = 6.60 CPU) @ 1515151.52/s (n=10000000) re ==: 27 wallclock secs (27.77 usr + 0.00 sys = 27.77 CPU) @ 360100.83/s (n=10000000)