2016-01-22 145 views

回答

4

對此,您不需要substr

$str =~ /^/

要檢查是否有許多空白字符一個開始:

$str =~ /^\s/ 
2

不需要正則表達式是:

substr($str, 0, 1) eq " " 
3

你不需要substr這個正則表達式!

ord($str) == 32 

而且,如果你在做這些比較的十億,你應該注意到一個英俊的性能提升,以及:

use Benchmark qw(cmpthese); 

my $str = "  hello"; 

cmpthese(0, { 
    regex => sub { $str =~ /^/}, 
    substr => sub { substr($str, 0, 1) eq ' ' }, 
    ord => sub { ord($str) == 32 }, 
}); 

結果:

   Rate regex substr ord 
regex 6473675/s  -- -43% -70% 
substr 11300632/s 75%  -- -48% 
ord 21653474/s 234% 92%  -- 
相關問題