if( $vartocheck eq lc($firstchar) ) {
++$foo;
}
####
#! /usr/bin/perl -w
use strict;
use Benchmark;
use vars qw/$vartocheck $firstchar/;
$vartocheck = 'x';
$firstchar = 'y';
my $iters = shift || 10000;
timethese $iters, {
'eq !=' => sub { return $vartocheck eq lc($firstchar) },
're !=' => sub { return $vartocheck =~ /\Q$firstchar\E/i },
};
$firstchar = 'x';
timethese $iters, {
'eq ==' => sub { return $vartocheck ne lc($firstchar) },
're ==' => sub { return $vartocheck !~ /\Q$firstchar\E/i },
};
__END__
% perl eqre 10000000
Benchmark: timing 10000000 iterations of eq !=, re !=...
eq !=: 8 wallclock secs ( 8.00 usr + 0.02 sys = 8.02 CPU) @ 1246882.79/s (n=10000000)
re !=: 14 wallclock secs (13.74 usr + 0.10 sys = 13.84 CPU) @ 722543.35/s (n=10000000)
Benchmark: timing 10000000 iterations of eq ==, re ==...
eq ==: 8 wallclock secs ( 6.98 usr + 0.04 sys = 7.02 CPU) @ 1424501.42/s (n=10000000)
re ==: 17 wallclock secs (16.76 usr + -0.01 sys = 16.75 CPU) @ 597014.93/s (n=10000000)
####
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)