Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是m!在这种情况下,perl语法意味着_Perl - Fatal编程技术网

什么是m!在这种情况下,perl语法意味着

什么是m!在这种情况下,perl语法意味着,perl,Perl,在尝试调试git svn和--ignore path选项的问题时,我遇到了这个perl表达式,我不理解,在perl文档中也找不到类似的东西 $path =~ m!$self->{ignore_regex}! 我的理解是,这是将$path字符串与ignore_regex匹配,但它似乎与我期望的方式不匹配。我不明白的部分是m围绕$self->{ignore_regex} 我应该如何阅读此语法?这是最重要的 m通常写为/…/,但它们完全相同 如果“/”是分隔符,则首字母m是可选的。使用m可以

在尝试调试git svn和--ignore path选项的问题时,我遇到了这个perl表达式,我不理解,在perl文档中也找不到类似的东西

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

我应该如何阅读此语法?

这是最重要的

m
通常写为
/…/
,但它们完全相同

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

例如,以下内容是相同的:

$path=~/$self->{ignore\u regex}/
$path=~m/$self->{ignore_regex}/
$path=~m^$self->{ignore_regex}^
$path=~m{$self->{ignore_regex}
有问题的代码检查
$path
中的字符串是否与
$self->{ignore\u regex}

中的正则表达式模式相匹配,这是问题所在

m
通常写为
/…/
,但它们完全相同

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

例如,以下内容是相同的:

$path=~/$self->{ignore\u regex}/
$path=~m/$self->{ignore_regex}/
$path=~m^$self->{ignore_regex}^
$path=~m{$self->{ignore_regex}

有问题的代码检查
$path
中的字符串是否与
$self->{ignore\u regex}

m!中的正则表达式模式匹配
/…/
相同,
仅限制正则表达式。请参阅相关文档。您甚至不需要
m
m
/…/
相同,
仅限制正则表达式。请参阅相关文档。您甚至不需要
m