Perl分裂模式

pla*_*etp 5 regex perl

根据perldoc,split的语法是:

split /PATTERN/,EXPR,LIMIT
Run Code Online (Sandbox Code Playgroud)

PATTERN也可以是单引号或双引号字符串:split "PATTERN", EXPR.它有什么不同?

编辑:我所知道的差异是在反斜杠上分裂:split /\\/vs split '\\'.第二种形式不起作用.

Jim*_*vis 6

看起来它使用它作为"指定模式的表达式":

模式/ PATTERN /可以用表达式替换,以指定在运行时变化的模式.(要仅运行一次运行时编译,请使用/ $ variable/o.)

编辑:我测试了这个:

my $foo = 'a:b:c,d,e';
print join(' ', split("[:,]", $foo)), "\n";
print join(' ', split(/[:,]/, $foo)), "\n";
print join(' ', split(/\Q[:,]\E/, $foo)), "\n";
Run Code Online (Sandbox Code Playgroud)

除了' '特殊情况,它看起来就像一个正则表达式.