perl - m! 是什么意思?在这个 perl 语法中意味着
问题描述
在尝试调试我在使用 git-svn 和 --ignore-paths 选项时遇到的问题时,我遇到了这个我不理解的 perl 表达式,并且无法在 perl 文档中找到任何类似的东西。
$path =~ m!$self->{ignore_regex}!
我对此的理解是,这将 $path 字符串与 ignore_regex 匹配,但它似乎与我期望的任何内容都不匹配。我不明白的部分是m! !
周围$self->{ignore_regex}
?
我应该如何阅读这种语法?
解决方案
这是匹配运算符。
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}}
有问题的代码检查 in 中的字符串是否与 .$path
中的正则表达式模式匹配$self->{ignore_regex}
。
推荐阅读
- go - 如何访问gohtml中切片结构内的结构元素?
- c# - 是否有任何可用于“Escape”按键或单击“取消”按钮以在 C# 中使用 selenium 上传文件?
- javascript - 在Node Js中写入文件时如何将对象推送到数组中
- android - 从单独的日期和时间文件中获取时间
- pyserial - 如何使用 python 在 windows 中获取 FTDI FT4232 芯片位置信息或序列号?
- python-3.x - 如何证明这个 python 数组的工作行为?
- javascript - 如何将 url 中的 %20 替换为 hypen?
- python-3.x - 如何检测当前在 Windows 10 上使用 Python 3 / cmd 最小化了哪些程序(名称)?
- git - git alias 使用什么外壳?
- java - Maven 针对某个架构和平台