'X' =~ /^X$/
####
#!/usr/bin/env perl
use 5.010;
use strict;
use warnings;
use Benchmark 'cmpthese';
use constant STRING => 'X';
use constant CONST_RE => qr{^X$};
my $my_re = qr{^X$};
state $state_re = qr{^X$};
our $our_re = qr{^X$};
local $main::local_re = qr{^X$};
cmpthese 0 => {
re_str => sub { STRING =~ '^X$' },
re_re => sub { STRING =~ /^X$/ },
re_re_o => sub { STRING =~ /^X$/o },
re_qr => sub { STRING =~ qr{^X$} },
re_qr_o => sub { STRING =~ qr{^X$}o },
qr_my => sub { STRING =~ $my_re },
qr_my_re => sub { STRING =~ /$my_re/ },
qr_my_re_o => sub { STRING =~ /$my_re/o },
qr_state => sub { STRING =~ $state_re },
qr_state_re => sub { STRING =~ /$state_re/ },
qr_state_re_o => sub { STRING =~ /$state_re/o },
qr_our => sub { STRING =~ $our_re },
qr_our_re => sub { STRING =~ /$our_re/ },
qr_our_re_o => sub { STRING =~ /$our_re/o },
qr_const => sub { STRING =~ CONST_RE },
qr_const_re => sub { STRING =~ /${\CONST_RE()}/ },
qr_const_re_o => sub { STRING =~ /${\CONST_RE()}/o },
qr_local => sub { STRING =~ $main::local_re },
qr_local_re => sub { STRING =~ /$main::local_re/ },
qr_local_re_o => sub { STRING =~ /$main::local_re/o },
};
##
##
Rate
re_qr 550709/s
re_qr_o 560597/s
qr_local 1061718/s
qr_const_re 1065053/s
qr_state 1065891/s
qr_local_re 1077507/s
qr_our 1089135/s
qr_state_re 1089138/s
qr_my_re 1092539/s
qr_my 1096982/s
qr_our_re 1101420/s
qr_state_re_o 4073421/s
qr_local_re_o 4085064/s
qr_my_re_o 4279146/s
qr_const_re_o 4293130/s
qr_our_re_o 4302931/s
re_re_o 4647519/s
qr_const 4745450/s
re_re 4748039/s
re_str 4814042/s
##
##
Rate re_qr re_qr_o qr_local qr_const_re qr_state qr_local_re qr_our qr_state_re qr_my_re qr_my qr_our_re qr_state_re_o qr_local_re_o qr_my_re_o qr_const_re_o qr_our_re_o re_re_o qr_const re_re re_str
re_qr 550709/s -- -2% -48% -48% -48% -49% -49% -49% -50% -50% -50% -86% -87% -87% -87% -87% -88% -88% -88% -89%
re_qr_o 560597/s 2% -- -47% -47% -47% -48% -49% -49% -49% -49% -49% -86% -86% -87% -87% -87% -88% -88% -88% -88%
qr_local 1061718/s 93% 89% -- -0% -0% -1% -3% -3% -3% -3% -4% -74% -74% -75% -75% -75% -77% -78% -78% -78%
qr_const_re 1065053/s 93% 90% 0% -- -0% -1% -2% -2% -3% -3% -3% -74% -74% -75% -75% -75% -77% -78% -78% -78%
qr_state 1065891/s 94% 90% 0% 0% -- -1% -2% -2% -2% -3% -3% -74% -74% -75% -75% -75% -77% -78% -78% -78%
qr_local_re 1077507/s 96% 92% 1% 1% 1% -- -1% -1% -1% -2% -2% -74% -74% -75% -75% -75% -77% -77% -77% -78%
qr_our 1089135/s 98% 94% 3% 2% 2% 1% -- -0% -0% -1% -1% -73% -73% -75% -75% -75% -77% -77% -77% -77%
qr_state_re 1089138/s 98% 94% 3% 2% 2% 1% 0% -- -0% -1% -1% -73% -73% -75% -75% -75% -77% -77% -77% -77%
qr_my_re 1092539/s 98% 95% 3% 3% 2% 1% 0% 0% -- -0% -1% -73% -73% -74% -75% -75% -76% -77% -77% -77%
qr_my 1096982/s 99% 96% 3% 3% 3% 2% 1% 1% 0% -- -0% -73% -73% -74% -74% -75% -76% -77% -77% -77%
qr_our_re 1101420/s 100% 96% 4% 3% 3% 2% 1% 1% 1% 0% -- -73% -73% -74% -74% -74% -76% -77% -77% -77%
qr_state_re_o 4073421/s 640% 627% 284% 282% 282% 278% 274% 274% 273% 271% 270% -- -0% -5% -5% -5% -12% -14% -14% -15%
qr_local_re_o 4085064/s 642% 629% 285% 284% 283% 279% 275% 275% 274% 272% 271% 0% -- -5% -5% -5% -12% -14% -14% -15%
qr_my_re_o 4279146/s 677% 663% 303% 302% 301% 297% 293% 293% 292% 290% 289% 5% 5% -- -0% -1% -8% -10% -10% -11%
qr_const_re_o 4293130/s 680% 666% 304% 303% 303% 298% 294% 294% 293% 291% 290% 5% 5% 0% -- -0% -8% -10% -10% -11%
qr_our_re_o 4302931/s 681% 668% 305% 304% 304% 299% 295% 295% 294% 292% 291% 6% 5% 1% 0% -- -7% -9% -9% -11%
re_re_o 4647519/s 744% 729% 338% 336% 336% 331% 327% 327% 325% 324% 322% 14% 14% 9% 8% 8% -- -2% -2% -3%
qr_const 4745450/s 762% 746% 347% 346% 345% 340% 336% 336% 334% 333% 331% 16% 16% 11% 11% 10% 2% -- -0% -1%
re_re 4748039/s 762% 747% 347% 346% 345% 341% 336% 336% 335% 333% 331% 17% 16% 11% 11% 10% 2% 0% -- -1%
re_str 4814042/s 774% 759% 353% 352% 352% 347% 342% 342% 341% 339% 337% 18% 18% 13% 12% 12% 4% 1% 1% --