1.正则表达式的优先级
优先次序 操作符 描述
最高级 ()(?:),等等 圆括号或其他分组操作符
第二级 ? + * (m,n) + ?, 等等 重复次数
第三极 ^$ abc \G \b \B [abc] 字符序列 文字字符 字符组 断言
最低级 a|b 多选结构
2.双引号变量内插
使用quotemeta将字符中的特殊字符转义,然后用于匹配。
chomp($pat = <STDIN>); my $quoted = quotemeta $pat ; print "matched\n" if /($quoted){2}/;
或者,直接在表达式中使用转义操作符\Q 和 \E
chomp($pat = <STDIN>); print "matched\n" if /(\Q$quoted\E){2}/;