Переделал тест и опять в шоке<br>Либо что-то не так в тестах, либо регулярки рвут substr как грелку<br><br>use strict;<br>use warnings;<br>use Benchmark qw(:all :hireswallclock);<br><br>my $phone = &#39;70123456789&#39;;<br>
my $cnt&nbsp;&nbsp; = 1000;<br>my $vs = {<br>&nbsp;&nbsp;&nbsp; regex =&gt; &#39;if ( $phone =~ /^7/ ) { }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $phone .= &quot;&quot;;&#39; x $cnt,<br>&nbsp;&nbsp;&nbsp; substr_eq =&gt; &#39;if ( substr($phone, 0, 1) eq &quot;7&quot; ) { }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $phone .= &quot;&quot;;&#39; x $cnt,<br>
&nbsp;&nbsp;&nbsp; substr =&gt; &#39;if ( substr($phone, 0, 1) == 7 ) { }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $phone .= &quot;&quot;;&#39; x $cnt,<br>};<br><br>print &quot;Benchmark: $Benchmark::VERSION\n&quot;;<br>print &quot;PERL: $]\n&quot;;<br>cmpthese -20, $vs;<br>
<br>__END__<br><br>Benchmark: 1.07<br>PERL: 5.008008<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Rate&nbsp;&nbsp;&nbsp; substr substr_eq&nbsp;&nbsp;&nbsp;&nbsp; regex<br>substr&nbsp;&nbsp;&nbsp; 2451/s&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -17%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -51%<br>substr_eq 2947/s&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 20%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -41%<br>regex&nbsp;&nbsp;&nbsp;&nbsp; 5027/s&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 105%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 71%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --<br>
<br><br>Benchmark: 1.07<br>PERL: 5.008008<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Rate&nbsp;&nbsp;&nbsp; substr substr_eq&nbsp;&nbsp;&nbsp;&nbsp; regex<br>substr&nbsp;&nbsp;&nbsp; 2462/s&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -16%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -52%<br>substr_eq 2922/s&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 19%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -43%<br>regex&nbsp;&nbsp;&nbsp;&nbsp; 5093/s&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 107%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 74%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --<br>
<br><br>Benchmark: 1.07<br>PERL: 5.008008<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Rate&nbsp;&nbsp;&nbsp; substr substr_eq&nbsp;&nbsp;&nbsp;&nbsp; regex<br>substr&nbsp;&nbsp;&nbsp; 2433/s&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -15%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -52%<br>substr_eq 2878/s&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 18%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -43%<br>regex&nbsp;&nbsp;&nbsp;&nbsp; 5066/s&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 108%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 76%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --<br>
<br>