什么 m!在这个 perl 语法中意味着

时间:2021-03-18 17:59:25

标签: perl

在尝试调试 git-svn 和 --ignore-paths 选项时遇到的问题时,我遇到了这个我不理解的 perl 表达式,并且在perl 文档。

$path =~ m!$self->{ignore_regex}! 

我对此的理解是,这是将 $path 字符串与 ignore_regex 匹配,但它似乎与我期望的任何方式都不匹配。我不明白的部分是 m! ! 周围的 $self->{ignore_regex}

我应该如何阅读这种语法?

1 个答案:

答案 0 :(得分:4)

这是match operator

m!...! 更常写为 /.../,但它们 100% 相同。

<块引用>

如果 "/" 是分隔符,则初始 m 是可选的。使用 m,您可以使用任何非空白 (ASCII) 字符对作为分隔符。这对于匹配包含 "/" 的路径名特别有用,以避免 LTS(倾斜牙签综合症)。 [...]

例如,以下是相同的:

$path =~ /$self->{ignore_regex}/
$path =~ m/$self->{ignore_regex}/
$path =~ m^$self->{ignore_regex}^
$path =~ m{$self->{ignore_regex}}

相关代码检查 $path 中的字符串是否与 $self->{ignore_regex} 中的正则表达式模式匹配。

相关问题