如何检查字符串是否以Perl中的空格开头?

时间:2016-01-22 12:49:41

标签: perl

我有一个字符串,其中包含很多空格。

my $str="       hello";

检查行是否以空格开头是什么条件?

3 个答案:

答案 0 :(得分:5)

不需要正则表达式:

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

答案 1 :(得分:5)

您不需要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%     --

答案 2 :(得分:4)

您不需要substrord

保持简单
$str =~ /^ /

更好的是,以下检查它是否以任何空格字符开头:

$str =~ /^\s/

最好是正确和可读,而不是最快。