in reply to You don't always have to use regexes
But for those that are addicted to regexes, the above situation won't bite speed too hard. The regex engine optimizes a fixed string to a Boyer Moore match, which is a tad slower than string equality:
yieldsuse Benchmark qw(:all) ; my $value = 'FALSE'; my $count = 10_000_000; cmpthese($count, { 'regex' => sub { $value =~ /^true$/i }, 'eq' => sub { lc $value eq "true" }, });
Unless that match is inside a tight loop, program performance will not be too degraded,Benchmark: timing 10000000 iterations of eq, regex... 1048% perl boyer.pl Benchmark: timing 10000000 iterations of eq, regex... eq: 9 wallclock secs ( 8.98 usr + 0.00 sys = 8.98 CPU) @ 11 +13585.75/s (n=10000000) regex: 16 wallclock secs (16.31 usr + 0.00 sys = 16.31 CPU) @ 61 +3120.78/s (n=10000000) Rate regex eq regex 613121/s -- -45% eq 1113586/s 82% --
-Mark
|
|---|