Perl 5选择自己的报价运营商的法律分界线是什么?

Kod*_*ist 10 quotes perl

perlop中提供可用于分隔符的各种例子q,qq,s等,包括',/,#,和{(具有关闭}的,而不是本身).但究竟是什么允许的规则呢?我注意到你不能使用,例如,空格或字母(编辑:如果你在运算符名称后面加上空格,则允许使用字母).

zdi*_*dim 10

我们在正则表达式的报价样算perlop中m/PATTERN/msixpodualngc

使用m你可以使用任何一对非空格(ASCII)字符作为分隔符
[...]
当在标识符中使用有效的分隔符时,在后面需要空格m.

因此,如果要使用单词字符作为分隔符,则需要使用空格将其与运算符分开.这适用于正则表达式和非正则表达式用法.

$ perl -le'print qq afooa'
foo
Run Code Online (Sandbox Code Playgroud)

您不需要的唯一一个m是solidus(/).
你不需要的唯一一个q是撇号(').
您不需要的唯一一个qq是引号(").
你不需要的唯一一个qx是严重的重音(`).

显然,必须转义与所选分隔符相同的引用字符.


一个有用的读物​​是Gory解析引用结构的细节(perlop)

一般报价简化直规则中可以找到编程的Perl,在选择自己的行情中第2章的点点滴滴(第3版)

...可以使用任何非字母数字的非空白分隔符

参考表格很像perlop中的表格.

虽然这直接来自Camel,但是在操作符和字符串之间使用空格我们也可以使用字母数字分隔符,如开头所示.由于ysth,在use utf8; Unicode也可以使用.

感谢ikegami的评论和编辑.


由于问题是关于我要注意的确切规则,我在文档中找不到单一的综合声明.虽然这里的第一个引用是完整的,但它指的是正则表达式使用.perlop一般Quote-Like运算符的前一部分没有指定分隔符(虽然同样的规则适用).