s~ 在 Perl 中做什么?

What does s~ do in Perl?

我正在使用的一个 Perl 文件包含许多 s~ 的实例。我不熟悉 Perl,很难找到有关它的信息。我知道它与搜索和替换字符串有关。 s~ 究竟是做什么的?

示例:

s~ (Text)~ <a href="../images/text.pdf" target="_top"></a>~ig if /<p/;

s是替换运算符。它像 $str =~ s/this/that/ 一样用于将 $str 中出现的“this”更改为“that”。

虽然 / 是最常见的分隔符,但 s 使用紧随其后的任何非空白字符来设置要在表达式的其余部分中使用的分隔符。 (许多其他运算符也是如此,例如 mq 等。)

此示例表示使用 ig 标志将文本 (Text) 替换为 HTML 锚元素。

之所以使用 ~ 而不是常规的 / 是为了避免在替换文本中对 / 进行转义,例如

s/ (Text)/ <a href="..\/images\/text.pdf" target="_top"><\/a>/ig if /<p/;

更多详细信息可以通过 运行 perldoc -f s.

找到