我遇到了以下代码:
my $string = "fo2345obar";
$string =~ s<(\d+)><$1\.>g;
Run Code Online (Sandbox Code Playgroud)
我无法理解尖括号在这种情况下的含义;我之前看到的所有替换都是形式:
$string =~ s/(\d+)/$1\./g;
Run Code Online (Sandbox Code Playgroud)
尖括号是什么意思?
在 Perl 中,你可以使用任何你喜欢的分隔符,所以以下都是等价的:
s/PATTERN/REPLACEMENT/
s=PATTERN=REPLACEMENT=
s,PATTERN,REPLACEMENT,
Run Code Online (Sandbox Code Playgroud)
这在 中也是可能的sed。
但是,在 Perl 中,一些分隔符是特殊的,因为它们是成对出现的,例如
s{PATTERN}{REPLACEMENT}
s<PATTERN><REPLACEMENT>
s(PATTERN)[REPLACEMENT]
Run Code Online (Sandbox Code Playgroud)
等等。