嵌入式模式匹配使用扩展模式句法,这种句法将一个问号作为第一个字符放在一对圆括号里。例如,要搜索字符串foo,同时忽略掉它的大小写就要使用:
$string =~ /(?i)foo/;
(使用)修饰符要比使用在模式最后放上一个/i修饰符的程序句法(假设该模式从文件读入)灵活得多。
下面四种模式匹配修饰符都是可嵌入的。(关于这些修饰符)完整讨论见perl的文档。
在一个或者多个模式匹配修饰符之前加上一个连字符(“-”)会关闭这些修饰符。
此外,你要知道修饰符会在一个封闭的空间内被本地化。例如,想想下面的模式:
/((?i)foo)bar/
它会匹配大写或者小写的foo,但是只会匹配小写的bar,因为大小写不敏感修饰符只应用到了封闭的块里。
perl的嵌入式模式匹配修饰符,使得在配置文件里和利用命令行支持动态模式变得非常简单,而不需要利用复杂的句法来支持大小写不敏感比较这样的匹配选项。